`xcode-select --print-path`/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication // 獲得打包工具PackageApplication (完整路徑)
xcodebuild負責將工程源文件編譯成xxx.app
xcrun負責給xxx.app(簽名並)打包成xxx.ipa
先說我是咋干的。
第一步清理:
/usr/bin/xcodebuild -target targetName clean
第二步編譯:
/usr/bin/xcodebuild -target targetName
第三步打包:
/usr/bin/xcrun -sdk iphoneos PackageApplication -v path/To/xxx.app -o xxx.ipa
解釋一下
關於xcodebuild,xcodebuild -target target名 就完成了一次編譯工作,因為xcodebuild默認的一個參數就是build,即完整的命令就是:xcodebuild -target target build。而打包前清理的話就是xcodebuild -target target clean了。為什么打包前要先清理呢?因為清理一下能保證打的包肯定是干凈的而且打包過程不會出問題
關於xcrun,直接打包的參數就是 xcrun -sdk iphoneos PackageApplication -v 源app路徑 -o 輸出的ipa路徑
關於xcrun要更新的一個認識就它的打包功能,查資料的時候發現好多牛人都是直接用xcodebuild編譯,然后自已手動用zip將編譯好的app打包成ipa格式,表示不理解這些牛人們為什么要費力自已實現一遍。
注意事項:以上兩個命令必需在xxx.xcodeproj所在的目錄執行
高級用法:給應用簽名。上面兩個命令都可以給應用簽名的,格式分別是:
xcodebuild -target targetName CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX"
xcrun -sdk iphoneos PackageApplication -v 源app路徑 -o 輸出的ipa路徑 --sign "iPhone Distribution
xcrun -sdk iphoneos PackageApplication -v 源app路徑 -o 輸出的ipa路徑 --sign "iPhone Distribution
補充:打包要使用到的命令 xcodebuild xcrun xcode-select CodeSign security等