在實際應用中需要用到debug的安裝包,所以決定自己學習一下打包,打包過程中遇到了各種問題,下面記錄了一下我在打包中用到的步驟,當然我還有很多不明白的地方,如果有不對的地方,希望可以大家可以指出
環境要求
1.安裝xcode
直接在AppStore里下載即可,是免費的
2.安裝CocoaPods(包管理工具)
3.安裝protobuf
brew install protobuf
protoc --version
說明:注意protobuf的版本,比如我們需要的是低版本的protocbuf 2.4.1。protobuf高版本和低版本的語法是不一樣的
安裝protobuf2.4.1的方法和可能遇到的問題參照我另一篇隨筆:http://www.cnblogs.com/meitian/p/5791042.html
通過個人appleid打debug包安裝到機器
如果打release包是一樣的,只是需要有可以打release包的證書
個人的applieid及時不去買證書,也支持打debug包了,只有.app格式的,可以直接安裝到真機上
1.注冊appleid
2.xcode添加appleid
Xcode->Preferences…,彈框選擇Accounts。點擊左下角的+號,選擇Add Apple ID…。然后選擇填寫自己的applied賬號即可。
3.修改工程的General的Identity。
Bundle Identifiable取一個別人沒用過的名字。Team選擇自己剛添加applied時生成的一個Team。(可以看到是一個Personal Team)
build setting的tab下包含了簽名等選項,默認都是沒問題的,如果有問題就按照實際遇到的錯誤提示來看吧。
最終只要保證Identity下Fix issue沒有了就是對的,如果有就點一下Fix Issue按鈕,查看具體錯誤,全部解決后就可以了
4.buld編譯
Product->Build,生成targetname.app文件夾
存放位置默認在/Users/用戶名/Library/Developer/Xcode/DerivedData/產品名稱-emqwbznkiewpmvggtnsesohciziq/Build/Products
編譯結果默認的路徑是可以更改的,路徑是在Xcode->Preferences...->Locations->Derived Data決定,可以通過Advanced...去更改,具體詳見下面兩個圖
更改build結果存放路徑:
5.在模擬器或真機中直接安裝包
第一步選擇要安裝的設備:點擊下圖紅框中的位置選擇連上的真機或模擬器
第二步run:點擊Product->Run
打包生成ipa包
一、打包前提
1.首先需要導入證書和Provisioning配置文件,我這里用的是團隊共享的
導入證書:雙擊.p12文件,如果有密碼輸入密碼,自動安裝到鑰匙串里了(launchpad->其他->鑰匙串)
導入Provisioning配置文件:雙擊.mobileprovision共享配置文件,該文件就會被復制到存放配置文件的目錄(~/Library/MobileDevice/Provisioning Profiles)
導入的證書,那Bundle Identifier就必須和證書中的一致,否則會編譯失敗
2.必須連接了真機,否則Archive是置灰的
通過Window->Devices去添加設備
二、通過xcode打包
Product->Archive,然后在打包成功頁面export即可
注意:只有appleid沒花錢的那種是不能export出.ipa文件的
三、通過命令行xcodebuild打包生成ipa
第一步:清理
xcodebuild -target targetname clean
清理后會防止編譯時遇到一些奇怪的問題
第二步:編譯
使用pod后工程目錄下有兩個文件:xxx.xcworkspace,xxx.xcodeproj
xcworkspace是工作區文件,xcodeproj是工程文件,工作區文件包含工程文件。
如果有工作區xcworkspace的直接用工作區去編譯就可以了
xcodebuild -scheme shemename -workspace xxx.xcworkspace build
如果沒有xcworkspace文件,只有xcodeproj文件,就用下面的命令去編譯
xcodebuld -target targetname build
備注:在build時候有很多其他參數可以選擇,例如ARCHS、VALID_ARCHS等,根據自己需要來加吧,會影響到打包后結果,這里我也不是很清楚各個參數
存放位置默認在/Users/用戶名/Library/Developer/Xcode/DerivedData/產品名稱-emqwbznkiewpmvggtnsesohciziq/Build/Products,參考上面用xcode編譯時的結果
第三步:打包
找到編譯成的targetname.app文件夾,使用下面的命令進行打包生成.ipa文件
xcrun -sdk iphoneos PackageApplication -v targetname.app所在目錄/targetname.app" -o 想要輸出的目錄/文件名.ipa
打包時遇到的問題
問題1:提示protoc版本太高
This file was generated by an older version of protoc which is
或者有些依賴包,通過高版本的pod根本就沒裝成功
解決方法:設置一個低版本的protoc,可以參考我的另一篇博客http://www.cnblogs.com/meitian/p/5791042.html
問題2:很多include的文件找不到
解決方法:
將Build Setting中的Search Paths,Header Search Paths的尋找方式都改為non-recursive(非遞歸)
