iOS 測試包打包自動化 筆記
阿新 • • 發佈:2018-11-08
前言
之前寫個一個自動打包指令碼
https://github.com/xjh093/iOSAutoPacking
利用終端操作
還是得手動操作幾步
有沒有一步就搞定的呢?
有!
正文
真正 commond + B
打好測試包。(提前配置好除錯證書等…)
在Build Phases
新增一個指令碼 New Run Script Phases
輸入以下指令碼:(格式不能錯!一個空格都不行的)
if [ "${CONFIGURATION}" = "Debug" ] && [ -d "${BUILD_ROOT}/${CONFIGURATION}-iphoneos" ] then cd ${BUILD_ROOT}/${CONFIGURATION}-iphoneos rm -rf Output mkdir Payload mkdir Output cp -rf ${PROJECT_NAME}.app Payload/${PROJECT_NAME}.app zip -r Output/${PROJECT_NAME}.ipa Payload rm -rf Payload open ./Output fi
符號表 dSYM
如何生成對應的符號表?
需要先設定一下:
Build Setting
1. Debug Information Format -> DWARF with dSYM File
2. Generate Debug Symbols -> YES
配合指令碼語句
cp -rf ${PROJECT_NAME}.app.dSYM Output/${PROJECT_NAME}.app.dSYM
rm -rf ${PROJECT_NAME}.app.dSYM
就可以了!
完整的指令碼:
if [ "${CONFIGURATION}" = "Debug" ] && [ -d "${BUILD_ROOT}/${CONFIGURATION}-iphoneos" ] then cd ${BUILD_ROOT}/${CONFIGURATION}-iphoneos rm -rf Output mkdir Payload mkdir Output cp -rf ${PROJECT_NAME}.app Payload/${PROJECT_NAME}.app zip -r Output/${PROJECT_NAME}.ipa Payload rm -rf Payload cp -rf ${PROJECT_NAME}.app.dSYM Output/${PROJECT_NAME}.app.dSYM rm -rf ${PROJECT_NAME}.app.dSYM open ./Output fi
問題1
每次 Command + R
、 Command + B
都會開啟一個資料夾
有點討厭~
上面說了,格式不能錯!一個空格都不行
可以去掉一個空格,讓指令碼執行沒有效果
就不會每次打一個檔案夾了
比如,把
if [ "${CONFIGURATION}" = "Debug" ]
改成這樣
if ["${CONFIGURATION}" = "Debug" ]
等到真正要打包的時候
再改回來
就OK了!
問題2
切換賬號打包,導致少了檔案,無法安裝
原因:除錯證書未配置好
Build Setting -> Provisioning Profile
詳細看圖: