總結一下,目前.app包轉爲.ipa包的方法有如下幾種:html
一、Apple推薦的方式,即實用xcode的archive功能java
Xcode菜單欄->Product->Archive->三選一,通常選後兩個。linux
侷限性:我的開發通常採用這種方法,可是當一個證書多人使用時就稍顯麻煩。通常多人開發時都是採用provisioning profile+P12文件來進行真機調試。上述方法在最後導出ipa包時須要輸入appleID,這時還要向團隊的其餘人要。採用provisioning profile+P12真機調試的方式不要求開發者知道appleID以及密碼,密碼通常放在leader那裏;web
二、iTunes拖入(推薦)vim
這種方法十分方便。具體步驟請看動態圖:xcode
注意:itunes裏的「個人應用程序」是指電腦上的程序,不要求聯機,能夠把裏面的app刪除app
三、自動編譯腳本iphone
編寫一個全自動編譯腳本,從而不用打開XCODE編譯運行便可實現打包,這種方法也十分快捷。有興趣的能夠看這篇文章。ui
缺點:不出錯還好,一旦有語法錯誤或者其餘錯誤出現就很差處理spa
操做:
1)所需語句(可直接在命令行中執行)
xcodebuild -configuration Release
進入所在工程的根目錄文件夾,執行上面的語句,便可開始自動使用release模式build該工程文件。
注意:文件必須添加證書。
mkdir -p ipa/Payload cp -r ./Release-iphoneos/PRODUCT_NAME.app ./ipa/Payload cd ipa zip -r $FILE_NAME *
進入生成的app文件所在的文件夾,執行上面的語句,可將app文件打包爲ipa文件。
注意:app文件可直接導入iTunes後直接運行,可是沒有icon,只需將icon放入./ipa文件夾一塊兒打包便可。
app文件默認生成路徑(可修改):
Xcode3:所在工程根目錄/build/Debug-iphoneos/PRODUCT _NAME
Xcode4及之後:./user/<current User>/Library/Developer/XCode/DerivedData/<Project name>-<other character>/Build/Products 下有:Debug-iphoneos 和 Release-iphoneos以及Debug-iphonesimulator
icon要求:
不大於500*500
格式爲jpg
命名爲iTunesArtwork
不能有後綴
2)腳本的寫法(mac/linux)
腳本格式
#!/bin/sh mkdir -p ipa/Payload cp -r ./Release-iphoneos/PRODUCT_NAME.app ./ipa/Payload cd ipa zip -r $FILE_NAME * exit 0
腳本建立方法
打開終端
vim FILE_NAME.sh
按 「i」 進入編輯模式,輸入腳本內容,按「ESC」 退出編輯模式,按「ZZ」(大寫)保存並退出。
關於權限
使用ls -l能夠查看當前目錄下文件及文件夾的權限。
這裏將權限改成777便可chmod 777 FILE_NAME
而後重命名爲.ipa
四、解壓修改後綴名(本文推薦)
這種方式是在xcode編譯產生出.app包的基礎上進行進一步處理,經過簡單的壓縮以及修改後綴名便可實現ipa發包。
這種方式下又可經過腳本自動處理以及手動處理兩種途徑實現,推薦腳本方法,一勞永逸。
4.1 腳本自動生成ipa包
Step1: 新建文件夾,命名爲"distribute",新建 distribute.sh 腳本文件,內容爲:(注意,腳本中全部appName請先替換成你的真正app名稱)
rm -rf appName mkdir appName mkdir appName/Payload cp -r appName.app appName/Payload/appName.app cp Icon.png appName/iTunesArtwork cd appName zip -r appName.ipa Payload iTunesArtwork exit 0
Step2: 將要轉化的.app文件放到distribute/文件夾下
這時的文件夾目錄結構是這樣的:(注意,腳本中全部appName請先替換成你的真正app名稱)
distribute/distribute.sh distribute/appName.app
Step3: 運行distribute.sh腳本
打開Terminal,cd到distribute文件夾下,把distribute.sh拉到 terminal 中執行。若是提示 permission denied,則用 "chmod 777 distribute.sh" 命令賦予權限後,再執行一次distribute.sh。
Step4: 大約若干秒後,會在distribute/文件夾下生成appName/文件夾,裏面的appName.ipa就是咱們想要的包。
4.2 手動壓縮改後綴方式
這種方式與4.1的方法本質是同樣的。
Step1: 新建 "Payload" 文件夾,注意名字要一字不差;
Step2: 將你的 .app 包放到 Payload 中,注意 app 的名字不作任何更改,就用 xcode 生成的 app 名稱;
Step3: 在Payload文件夾上右鍵壓縮成zip,而後將生成的 .zip 文件後綴改爲 .ipa 便可