聲明:本篇文章整理來自個人印象筆記 僅供參考 如有問題歡迎指正
摘要
隨著公司訂單https升級的越來越多,上傳appstore的ipa包也打的越來越多,這樣就浪費了很長的時間在打上架包上,本文提供了一種比較智能的打包方式。
一、iOS程序包格式
iOS程序包分為appstore二進制文件跟渠道包兩種格式
appstore二進制文件:通過Xcode工具可以生成一個.app格式的二進制文件。
渠道包:格式為.ipa格式,在沒有自動化打包工具之前都是利用Xcode來生成相應的渠道包,而且每次只能生成一個渠道包,每次打包之前都得手動該渠道ID,帶來的問題就是耗費時間、效率低下、容易出錯、增加風險。
二、傳統(tǒng)的iOS打包方式
2.1 利用Xcode打包
appstore二進制程序包
打開你的項目,進入“Edit Project Settings”,進入Configuration頁面,選中Release點擊下面的Duplicate,復制一個新的配置項出來,命名為Distribution。然后進入Build頁面,頂上的Configuration下拉框選中Distribution,下面的Code Signing Identity里面的Any iPhone OS Device后面對應的值選中你的那個Distribution的證書。然后點擊“Build”–>“Build”就可以編譯程序了
編譯成功后,你就可以在相應的build目錄下看到一個.app的二進制文件。
2.2 渠道ipa包
根據(jù)以上步驟同樣配置好Distribution證書,然后點擊“Build”–> “Build and Archive”就可以編譯程序了。接著打開“Window”->”O(jiān)rganizer”左邊欄中選擇”ARCHIVED APPLICATIONS”然后再右側(cè)列表中選中剛才編譯的程序包再點擊右側(cè)右邊頂部的”Share”按鈕保存到磁盤即可。就會生成一個.ipa的文件即為渠道包。
注意:以上運行設備必須選擇“Deveice”
三、 利用Xcode提供了shell編譯工具xcodebuild和ipa打包工具xcrun打包
3.1:配置好Xcode中的打包的相關(guān)證書
3.2:終端命令:cd+你的項目目錄
例如:cd/Users/tsou/Desktop/DemoTest
3.3 終端運行下面的命令DemoTest給為你的項目名稱
$? xcodebuild -project DemoTest.xcodeproj-target DemoTest -configuration Release
這段終端命令執(zhí)行后會在你的項目中生成一個build目錄,終端也會有SUCCESS提醒。
??3.4? DemoTest替換為你的項目名稱? ? ~/Desktop/gjpgsc.ipa你的項目ipa存放路徑
$? xcrun -sdk iphoneos -v PackageApplication./build/Release-iphoneos/ DemoTest.app -o ~/Desktop/ DemoTest.ipa
打包成功后會在你的桌面上生成一個ipa包,這種打包方式有一定的局限性,只能針對沒有Cocopod管理的項目進行打包。
四、有Cocopod管理打包方式
4.1 配置好Xcode中的打包的相關(guān)證書
4.2 終端命令:cd +你的項目目錄
4.3 終端運行下面的命令LSDevModel3給為你的項目名稱
$ xcodebuild -workspace??/Users/tsou/Desktop/xx/xx項目/xx/LSDevModel3/LSDevModel3.xcworkspace -scheme LSDevModel3
運行成功的結(jié)果如:示例_01

其中的紅色框中的是你的.app存放路徑
4.4 終端導出ipa包
$ xcrun -sdk iphoneosPackageApplication -v? /Users/tsou/Library/Developer/Xcode/DerivedData/LSDevModel3-atkhbbokvohqghcgzgijmbigafev/Build/Products/Release-iphoneos/LSDevModel3.app
紅色為你的.app的絕對路徑。運行成功后的結(jié)果如:示例_02

紅框內(nèi)即為需要的ipa包。
五、 利用第三方快速打包 shenzhen
終端
? $ gem install shenzhen
? $ cd 到你的項目中
? $ ?ipa build?
??這樣直接就生成ipa包,原理其實是自動調(diào)用了4中的兩個終端命令,代碼運行后的效果如:示例_03

紅框內(nèi)即為你ipa存放目錄
其中ipa終端還有自動部署的功能,你可以終端
$ ipa help
