當前位置:首頁 » 編程軟體 » 攜程旅行ios工程編譯

攜程旅行ios工程編譯

發布時間: 2022-07-20 12:42:14

① 類似於攜程旅行這樣的手機APP開發需要多少錢

類似於攜程旅行這樣的手機APP開發需要多少錢

簡單點來說,要視手機APP的需求及質量而言,價位一般在幾千到十幾萬左右,更高端的價格更高。

四、APP開發公司的所在地

需要注意的是,同樣實力的APP開發公司,在不同的城市也會導致APP的成本費用高一些,如在北京、深圳和上海等地的開發公司開發成本費用就會比較高,因為當地開發人員的薪資和其他支出相對更高。

② APICloud 社區ios編譯失敗 怎麼辦

最近公司有使用APICloud發開的需求,需要我這邊提供一些模塊包得封裝。因為沒有也是剛接觸APICloud,所以也就在看官方文檔 。下面講一講我再使用過程中得一點點東西。 首先,下載官方SDK,下載最新版本的模塊開發SDK,找到裡面的MolesDevProject_iOS.zip,這裡麵包含MoleDemo、MolesDevProject和說明文件。MoleDemo是一個官方的模塊包封裝和靜態庫生成的工程。MolesDevProject則是可以讓我們自己調試的工程。 模塊類實現 2.1. 新建模塊類 新建一個UZMoleDemo類,繼承於UZMole類,其中UZMole類為模塊的基類。模塊開發過程中文件命名時提倡加前綴,以避免和其它模塊沖突。 2.2. 模塊生命周期 當前端js中調用模塊方法時,模塊首先會被初始化,引擎會調用其 - (id)initWithUZWebView:(UZWebView *)webView 方法; 當模塊所在的頁面被銷毀時,引擎會調用其 - (void)dispose 方法。 2.3. 啟動方法 如果模塊需要在應用啟動的時候就執行一些操作,那麼首先得在mole.json裡面配置launchClassMethod,例如配置的方法為launch,然後在模塊裡面實現該方法,當應用啟動時該方法就會被執行。 + (void)launch{ //在mole.json裡面配置的launchClassMethod,必須為類方法,引擎會在應用啟動時調用配置的方法,模塊可以在其中做一些初始化操作;下面代碼為注冊一個實現了UIApplicationDelegate協議方法的對象,該對象中方法就會在需要的時候被調用,通過此方式可以實現第三方應用回調url解析、推送等常用功能 //UZApphandler 基礎Object基類 可以做一些需要AppDelegate 實現的初始化 如初始化推送的AppKey等等 // UZAppHandler *appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle:appHandler]; } 2.4. 方法調用 實現 - (void)showAlert:(NSDictionary *)paramDict 方法,用於顯示一個對話框,該方法需要在mole.json裡面配置,然後在前端js裡面才可以調用該方法。 如果前端調用該方法時傳入了一個function,那麼在這里可以通過cbId欄位獲取該function對應的id,然後在需要的時候把數據通過該function回調給js。 - (void)showAlert:(NSDictionary *)paramDict { _cbId = [paramDict integerValueForKey:@"cbId" defaultValue:-1]; NSString *message = [paramDict stringValueForKey:@"msg" defaultValue:nil]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:message delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil]; [alert show]; } 2.5. 回調 我們在這里實現UIAlertViewDelegate中的 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 方法,將用戶點擊的按鈕index回調給js端,代碼如下: - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (_cbId >= 0) { NSDictionary *ret = @{@"index":@(buttonIndex)}; [self sendResultEventWithCallbackId:_cbId dataDict:ret errDict:nil doDelete:YES]; } } 當然,也可以定義自己的方法method,同時要修改mole.json的配置 注意不要[+]以及引號的英 漢。{ "name":"moleDemo",//模塊包名一致 "class":"UZMoleDemo",//模塊類名 "methods":["showAlert","method"],//自己定義的方法名 "launchClassMethod":"launch"//是否執行launc類方法 } 找到widget目錄下html目錄裡面的mole-con.html,我們在這裡面調用showAlert等方法,如下 var param = { msg:"Hello App!" }; var demo = api.require('moleDemo');//模塊包名稱 (mole.json 這里 模塊包名稱 三者要一致) demo.showAlert(param, callBack);//傳參數調用方法 和回調 function callBack(ret, err){ var msg; if (ret.index == 0){ msg = "點擊了第一個按鈕"; } else { msg = "點擊了第二個按鈕"; } api.toast({ msg:msg }); } 調試好了之後,把添加 修改的文件 加入MoleDemo的靜態庫工程(也可以自己創建),去掉沒用的,選擇iOS device編譯,復制靜態庫文件。 創建文件夾名稱和模塊包一致,裡面在創建target文件夾,把靜態庫文件粘貼進來,加入用到了第三方的Framework和bundle束也放進來。 target同級目錄粘貼mole.json文件,返回壓縮成zip文件. 獲取在apicloud創建的應用的Id 修改widget下config.xml 頂部的id,復制壓縮widget文件。在apicloud控制台,轉到該應用,選擇代碼部分,上傳widget.zip 跳轉模塊中自定義模塊上傳模塊包,名稱必須和模塊包名稱一致。保存 編譯,如果沒有意外,你就能掃二維碼 下載安裝你的應用到手機了。 這里默認的時apicloud提供的證書,加入要改自己的就看證書欄目,都有教程的。Mark!

③ 一個完整的App開發需要哪些技術

一個完整的App開發需要哪些技術?在回答這個問題之前,我們首先要了解App都有哪些類型,不同的類型適用於哪些需求,用戶可以根據自己的需求選擇不同的App開發。

一、 App有哪些形式

WebApp:簡單來說,Web App就是針對iOS/Android優化後的web站點,用戶不需要下載安裝即可訪問。一般的web站點測重使用網頁技術在移動端做展示,包括文字,視頻,圖片等,而Web App更側重「功能」,是基於網頁技術開發實現特定功能的應用,必須依賴手機瀏覽器運行。Web App開發成本低,維護更新簡單,支持雲修復,用戶不用下載更新,但是App的用戶體驗不足,頁面跳轉遲鈍甚至卡殼,頁面交互動態效果不靈活,而且可能上不了AppStore,如果企業的核心功能不多,App需求側重於信息查詢,瀏覽等基礎功能,可以選擇Web App。

Native App(原生App):Native App是基於智能手機操作系統(現在主流的是ios和Android)用原生程序編寫運營的App。Native App運行時是基於本地操作系統的,所以它的兼容能力和訪問能力更好,擁有最佳的用戶體驗、最好的交互界面,但也是開發難度最大,開發成本和維護成本最高的App。

Hybrid App(混合App):是指半原生半web的混合類App,同時採用網頁語言和程序語言進行開發,通過不同的應用商店進行打包分發,用戶需要下載安裝使用。Hybrid App兼具Native App良好的用戶交互體驗和web App跨平台開發的優勢,因在開發過程中使用網頁語言,所以開發成本和難度大大降低。Native App是現在的主流應用,大型的App如淘寶/掌上網路/微信都是走的Hybrid App路線。

二、開發不同類型的App需要用到哪些技術?

Web App:iOS/Android的內置瀏覽器是基於webkit內核的,所以在開發webApp時,多數使用html或html5、CSS3、javaScript技術做UI布局,使其在網站頁面上實現傳統的C/S架構軟體功能,服務端技術用java、php、ASP。現在也有很多一鍵生成webApp的平台,如網路siteApp/移動開發平台APICloud,APICloud平台提供基於騰訊x5瀏覽器引擎生成webApp,因為移動端的超級流量入口微信/手機qq等用的也是騰訊x5內置瀏覽器,所以用騰訊x5瀏覽器生成的App在移動頁面展示時適配於微信的瀏覽體驗,這樣可以幫助webApp引流。

Native App:

開發Native App需要根據運行的手機系統採用不同的開發語言,開發Android App需要的開發語言是java,還需要熟悉Android環境和機制。主要知識點如下:

1. 開發環境,Android Studio、eclipse.如何搭建Android開發環境可以去網路。
2. 數據結構,App的某些功能涉及到做演算法,所以要有一定的數學基礎
3. Android SDK,會API介面開發,包括自行開發API的能力和調用第三發API的經驗。
4. 熟悉tcp、IP,socket等網路協議
5. 如果涉及到伺服器,你還需要了解webservice相關知識和相應的開發語言,常用有PHP、JSP、ASP.Net.
6. 除了這些功能基礎,App開發還涉及到UI設計、框架、性能優化、調試適配等。

Objective-C是開發iOS系統App的主流編程語言,開發者一般用蘋果公司的iOS SDK搭建開發環境,iOS SDK是開發iOS應用程序中不可少的軟體開發包,提供了從創建程序,到編譯、調試、運行、測試等多種開發過程中需要等工具。學習iOS開發可以去看蘋果官方文檔,這是最權威的ios教程。

Hybrid App:混合開發中主流的是以web為主體型的開發,即以網頁語言編寫,穿插Native功能的hybrid App開發類型,網頁語言主要有html5、CSS3、JavaScript。Web主體型的App用戶體驗好壞,取決於底層中間件的交互與跨平台的能力。國內外有很多優秀的開發工具,如國外的AppmAkr、Appmobi,國內的APICloud,APICloud的底層引擎用Deep Engine,使用半翻譯式原理,將運行中的web翻譯成Native API,並且支持擴展API,開發時可調用用原生語言開發的功能模塊,以此達到媲美原生App的用戶體驗,同時節省開發時間。

對企業來說,可以根據自己的需求選擇不同的開發類型和開發工具,目前來看,Hybrid App已經成為移動開發趨勢,一方面Hybrid App開發時不採用或者大部分不採用原生語言,卻能擁有原生應用的特性,一方面隨著web技術的發展,Hybrid App技術已經成熟,很多大型App淘寶、微信、攜程都屬於這種開發模式,Hybrid App給企業移動應用的開發、維護、更新都帶來了極高的便捷性,從成本投入用戶體驗考慮,Hybrid App都是首選。

④ iOS 編譯報錯怎麼辦

1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.

若編譯出現如下錯誤:

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.

已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.

2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.

或者:選擇項目名,在detail列表中的target列(顯示為一個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裡面來.

3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.

4.there is no sdk with the name or path.

從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有iosdeploymenttarget選項.

嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換一下Active Configuration。

5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,一般是因為訪問野指針對象造成的。

一個和內存相關的崩潰一般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如一段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。

修復一些警告後,可能就能預防一些內存錯誤。警告在左邊靠近行號的黃色三角指出一個編譯警告,你點擊那個黃色的三角形,xcode可能會彈出一個「Fix-it」的建議。

EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用一個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為「長生不死的」。假如你試著之後又去使用這塊內存,這個app能夠意識到你的錯誤操作,並且app將會拋出「messagesent to daellocated instance」錯誤並且終止運行。

在工程中加入NSZombieEnabled 環境變數,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會列印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變數。

可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。

在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>

應該僅當需要調試內存時,才設置上述環境變數。

注意一點:不應該一直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記一下這個內存是不死的,你最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。

在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.

6.運行一個IPhone程序時,彈出窗口說「程序運行失敗,預置描述文件已過期」 。 解決辦法是,在Xcode中, window-> Orgnazier -> 你的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.

7.真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain

修改工程和Targets的get infouild 中的code signing identity為空

8.調試列印

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2

10.this class is not key value coding-compliant for the key viewController

可能在創建了一個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。

11.這台電腦上已經存在一個名為「embedded.mobileprovision」的預置文件,您是否要替換么?

http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html

12.真機調試時報failed to upload *.app

http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13.記的release時,先置delegate為nil。

一個節點不應該保留任何對不屬於它的節點的引用。

14.模擬器

將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。

    ⑤ 在攜程網頁上以非會員方式買了機票現在想放進ios的passbook里該怎麼做

    您好,iphone5s,系統版本為最新的7.0.6,能正常添加國內機票。如您是國內機票無法添加passbook,請檢查攜程旅行客戶端版本、IOS系統版本是否都為最新。您也可以在聯系客服核對信息後,進行綁定手機等操作,以便於您今後的預訂和查詢,感謝您的關注。

    ⑥ ios攜程旅行客戶端怎麼老是要更新啊而且一更新,以前的評論全都看不到是怕有差評我記得去哪兒

    親,可以看到,更新是有新功能了,雖然麻煩點,但是空的時候操作下沒有問題哦

    ⑦ ios 一個工程多target怎麼打包

    相信很多人都注意到XCode中, 有個Target的概念. 這在很多地方都有所體現, 比如打開一個工程後, 左側的列表中有Targets一項, 而在工程界面的頂部菜單中, project裡面也有多個涉及到Target的項目, 那麼這個Target到底是什麼呢?
    Apple的人是這樣說的:「 Targets that define the procts to build. A target organizes the files and instructions needed to build a proct into a sequence of build actions that can be taken.」
    簡單的理解的話, 可以認為一個target對應一個新的proct(基於同一份代碼的情況下). 但都一份代碼了, 弄個新proct做啥呢? 折騰這個有意思么?
    其實這不是單純的瞎折騰, 雖然代碼是同一份, 但編譯設置(比如編譯條件), 以及包含的資源文件卻可以有很大的差別. 於是即使同一份代碼, 產出的proct也可能大不相同.
    我們來舉幾個典型的應用多Targets的情況吧, 比如完整版和lite版; 比如同一個游戲的20關, 30關, 50關版; 再或者比如同一個游戲換些資源和名字就當新游戲賣的(喂喂, 你在教些什麼...)。

    以上的。

    這里不是要討論如何製作這樣的工程,而是選擇做與不做。

    最近的工作主題時維護製作兩個不同版本的代碼,相當是完整版和簡版的兩個項目。

    現在我們的處理是放在兩個不同目錄,以前兩個項目是由不同的框架組成,現在經過升級後,很多基礎功能都是一樣的,但也還是保留放在兩個不同地方維護。我一邊做一邊在想,為什麼一樣的代碼卻要放在兩個目錄下,那時已經發現的bug,只有一個地方得到修復了,這邊還是沒有的。實現同樣的功能,卻使用了兩份不同的代碼和框架。

    我理想的情況是,我們只有一個工程,這個工程應該就是一個完整工程,它包含了多個target,編譯一次它同時或者單獨輸出各個不同版本的target即可。

    但是,這次升級,我把iphone和ipad的代碼和在一起,後來自己測試時,我卻有些猶豫了。版本做成,iphone4.0運行的好好的,上ipad,崩了,上iphnoe3.0,起不來。於是代碼中出現好多重復的這樣的代碼
    If (isipad)
    xxx
    else
    xxx

    我開始在猶豫了。現在只是iphone和ipad放在一起,如果把兩個不同版本的target放在一起,那也許更慘了。3.0編譯的,要測試ipad的,iphone3,iphnoe4;4.0編譯的同樣也是。一次改動,所有的都要測試,那維護起來該有多麼的小心翼翼,如履薄冰啊。而且代碼也變得越來越臟了。

    面對經常遇到復雜而又頻繁多變的無聊小需求,把雞蛋放到一個籃子里,或許真不是一個好的選擇。相反的我倒是覺得也許現在沒有將這兩個工程和在一起是一個正確的選擇。

    取捨之間,我還是比較傾向於合並在一起維護。因為每一次出現一個小的適配,如果忘記兩個地方都修改,出現一個又一個深藏的bug,最後應該是滿目瘡痍。

    以前聽說在做s60的軟體都是單獨幾種設備適配一個版本,也就是說,需要維護同樣的很多分代碼,這對於我來說簡直是噩夢。

    不過做軟體就是這樣吧,該合的合,該分的還是需要分清楚的,一定要分清楚。

    ⑧ iOS gcc如何編譯.h 和.m 文件 或者說用gcc編譯 xcode中的工程呢 請指教。

    gcc -framework Foundation files -o progname

    ⑨ 如何使用xcodebuild在命令行編譯iOS工程

    、准備工作 1、jenkins環境。搭建jenkins環境可以參考jenkins平台搭建和配置一節。需要注意的是,雖然涉及iOS開發,但是jenkins平台卻不必搭建在mac機器上,只要在jenkins上添加mac節點就可以了。 2、iOS開發環境。iOS開發環境主要是指Xcode開發環境,Xcode是免費的,只要在蘋果應用商店裡下載一個就可以了。當然,還有重要的一點兒---開發者證書,現在個人也已經有免費的證書了,沒有證書的話,只能打模擬器用的包了。 3、git項目。強烈建議把代碼放在git上,這樣便於團隊開發。當然,不放git上也可以。 4、jenkins Xcode持續集成插件。常用的插件Xcode integration,這個插件能夠快速的幫助我們進行Xcode打包配置,當然,只用純shell腳本也是可以的。 在jenkins上打包之前,我們最好手工測試一下可以打包成功,首先用Xcode圖形界面進行測試,然後用命令行測試,如果都能打包成功就可以掛在jenkins上運行了,畢竟jenkins的原理也是通過執行一系列命令來完成的。 三、jenkins配置 1、創建一個任務,創建任務的時候最好選自由風格的軟體項目,這樣配置起來比較方便,如果有需要,也可以選擇其他的風格。 2、描述

    熱點內容
    聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:725
    linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
    兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
    cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
    安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
    win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
    情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
    安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197
    Z包解壓命令 發布:2024-09-17 01:27:51 瀏覽:221
    吉林ipfs存儲伺服器雲主機 發布:2024-09-17 01:27:38 瀏覽:685