實例分析IOS實現(xiàn)自動打包
方式一: 使用xcodebuild命令
步驟
0. 準備工作:基礎參數(shù)
# 項目名稱,打包后生成 .ipa 文件的名稱
projectName="JimuDudu"
# 項目目錄(一般情況下,shell 腳本就在項目路徑下)
workspacePath="/Users/apple/Documents/Projects/dudu/jimu-dudu-ios/jimu-dudu/"
# Archive 后,文件導出目錄
archivePath="/Users/apple/Desktop/tmp/build/"
# 獲取 shell 腳本所在目錄
currentPath=$(cd `dirname $0`; pwd)
1. Build
xcodebuild -scheme ${projectName} -workspace "${workspacePath}${projectName}.xcworkspace" -configuration Release clean build
2. Archive
xcodebuild -scheme ${projectName} -workspace "${workspacePath}${projectName}.xcworkspace" -configuration Release archive -archivePath "${archivePath}${projectName}"
3. Export .ipa file
xcodebuild -exportArchive -archivePath "${archivePath}${projectName}.xcarchive" -exportPath ${archivePath} -exportOptionsPlist "${currentPath}/ADHocExportOptions.plist"
總結
TIPS
shell 腳本和 plist 文件在一個目錄下(也可以不在一個目錄,本示例是在一個目錄下,一般情況,shell 腳本和 plist 文件都會在項目目錄下。)
正常情況,shell 腳本和 plist 文件都會在項目目錄下,所以 workspacePath 和 archivePath 等路徑,都可以寫成相對路徑
編譯前還有一些準備工作,比如拉取最新代碼
這樣打包過程很耗時,在本機上測試,大概需要26分鐘!
這種方式,可能會跟隨 Xcode 版本的升級而略有改變,否則就會報錯。
方式二: 手動編譯,自動打包
一般打測試包的方式
說明
手動編譯,生成 .app 文件
把 .app 文件放在名字為 Payload 文件夾下
壓縮文件夾,生成 .zip 文件
修改文件名:.zip -> ipa,打包完成
步驟
準備工作:修改 Xcode 中的配置
Build(command + B)
執(zhí)行腳本,自動打包并生成 .ipa 文件
腳本簡介
流程圖
主要代碼
# 創(chuàng)建 Payload 文件夾
payloadPath=${basicPath}/Payload
mkdir -p ${payloadPath}
# 移動 .app 文件到 Payload 目錄下
cp -r ${appFileFullPath} ${payloadPath}
# 打包并生成 .ipa 文件
zip -q -r ${ipaFileName} ${payloadPath}
總結
TIPS
執(zhí)行腳本時,可以傳入 .app 文件所在路徑,或者不傳;不傳的話,默認從當前路徑獲取,獲取不到報錯
執(zhí)行腳本時,如果傳入的參數(shù)不包含 .app 文件名,則需要手動輸入,若輸入錯誤,報錯,終止程序。
一般而言,shell 腳本配置一次之后,就再也不需要修改。屬于一勞永逸的事。
方式三: Product -> Archieve -> Export
一般打提交 App Store 包的時候,會這么操作。
相關文章
iOS開發(fā)項目- 基于WebSocket的聊天通訊(2)
這篇文章主要介紹了iOS開發(fā)項目- 基于WebSocket的聊天通訊,可以實現(xiàn)錄音和音樂播放,有需要的可以了解一下。2016-11-11IOS開發(fā) 支持https請求以及ssl證書配置詳解
這篇文章主要介紹了IOS開發(fā) 支持https請求以及ssl證書配置詳解的相關資料,需要的朋友可以參考下2017-02-02iOS block循環(huán)引用詳解及常見誤區(qū)
這篇文章主要介紹了iOS block循環(huán)引用詳解和應用,常見誤區(qū)詳解,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08