使用腳本打包可以有三種方法。
不管使用哪種方法,項目的相關設置必須正確,如證書,描述文件等。
注意事項:
1、打包時必須進入項目目錄進行
2、獲取證書名稱:Launchpad->其他->鑰匙串訪問->選擇證書->鼠標右擊->顯示簡介->細節->常用名稱->複製
3、獲取描述文件UUID:打開Xcode->菜單欄->Preferences->Accounts->Apple IDs->帳號->show Details->Provisioning Profiles->選擇項目中使用的描述文件->鼠標右擊->show in Finder
4、獲取target/schemes:終端->cd 項目目錄->進入項目目錄後,執行命令"xcodebuild -list"
方法一,只是使用xcodebuild生成ipa包
- # xcodebuild
- pwd
- # 1 刪除舊文件
- rm -rf "archive/log.txt"
- rm -rf "archive/zsydemo.xcarchive"
- rm -rf "archive/zsydemo.ipa"
- # 2 清除舊項目
- xcodebuild clean -configuration Release -alltargets >> archive/log.txt
- # 3 歸檔(其他參數不指定的話,默認用的是.xcworkspace或.xcodeproj文件裏的配置)
- # workspace
- xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
- # project
- # xcodebuild archive -project zsydemo.xcodeproj -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
- # 4 導出IPA xcodebuild
- # 方法1(未使用plist文件設置ipa包;需要指定包格式)
- xcodebuild -exportArchive -exportFormat IPA -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt
- # 方法2(使用plist配置生成ipa;不需要指定包格式)
- # xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportOptionsPlist archive/ipaTestExportOptions.plist -exportPath archive >> archive/log.txt
方法二,使用xcodebuild生成archive包,然後使用xcrun生成ipa包
使用注意事項:xcrun生成ipa包時必須時絕對的全路徑
- # xcodebuild + xcrun
- # 使用注意:項目必須設置好證書、描述文件;其次ipa包的生成路徑必須是絕對的全路徑
- pwd
- # 1 刪除舊文件
- rm -rf "archive/log.txt"
- rm -rf "archive/zsydemo.xcarchive"
- rm -rf "archive/zsydemo.ipa"
- # 2 清理舊項目
- xcodebuild clean -configuration Release -alltargets >> archive/log.txt
- # 3 歸檔(其他參數不指定的話,默認用的是.xcworkspace或.xcodeproj文件裏的配置)
- xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -destination generic/platform=iOS -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt
- # 4 導出IPA xcrun
- pwd
- ipa_path=`pwd`/archive/zsydemo.ipa
- xcrun -sdk iphoneos PackageApplication -v archive/zsydemo.xcarchive -o "$ipa_path" >> archive/log.txt >> archive/log.txt
方法三,使用xctool生成archive包,然後使用xcodebuild生成ipa包
使用注意事項:xctool生成archive包時必須設置正確的參數順序
- # xcodebuild + xctool
- # 使用注意:項目中必須正確設置證書、描述文件;且必須注意xctool命令書寫格式。
- pwd
- echo "<----------開始刪除舊文件---------->"
- # 刪除舊文件
- rm -rf "archive/log.txt"
- rm -rf "archive/zsydemo.xcarchive"
- rm -rf "archive/zsydemo.ipa"
- echo "<----------成功刪除舊文件---------->"
- echo "<----------開始清除舊項目---------->"
- # 重要,執行xcodebuild命令時,必須進入項目目錄
- # 清空前一次build的項目緩存
- xctool clean -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release >> archive/log.txt
- echo "<----------成功清除舊項目---------->"
- echo "<----------開始歸檔archive包---------->"
- # 歸檔(其他參數不指定的話,默認用的是.xcworkspace或.xcodeproj文件裏的配置)
- # 根據指定的項目、scheme、configuration與輸出路徑打包出archive文件(注意參數配置順序)
- xctool -workspace zsydemo.xcworkspace -scheme zsydemo archive -archivePath archive/zsydemo.xcarchive >> archive/log.txt
- echo "<----------成功歸檔archive包---------->"
- echo "<----------開始導出ipa包---------->"
- # 導出IPA 使用指定的provisioning profile導出ipa
- xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa -exportFormat ipa -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt
- echo "<----------成功導出ipa包---------->"
- # 輸出總用時
- echo "<----------Finished. Total time: ${SECONDS}s---------->"