實(shí)例分析IOS實(shí)現(xiàn)自動(dòng)打包
方式一: 使用xcodebuild命令
步驟
0. 準(zhǔn)備工作:基礎(chǔ)參數(shù)
# 項(xiàng)目名稱,打包后生成 .ipa 文件的名稱
projectName="JimuDudu"
# 項(xiàng)目目錄(一般情況下,shell 腳本就在項(xiàng)目路徑下)
workspacePath="/Users/apple/Documents/Projects/dudu/jimu-dudu-ios/jimu-dudu/"
# Archive 后,文件導(dǎo)出目錄
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"
總結(jié)
TIPS
shell 腳本和 plist 文件在一個(gè)目錄下(也可以不在一個(gè)目錄,本示例是在一個(gè)目錄下,一般情況,shell 腳本和 plist 文件都會(huì)在項(xiàng)目目錄下。)
正常情況,shell 腳本和 plist 文件都會(huì)在項(xiàng)目目錄下,所以 workspacePath 和 archivePath 等路徑,都可以寫成相對(duì)路徑
編譯前還有一些準(zhǔn)備工作,比如拉取最新代碼
這樣打包過(guò)程很耗時(shí),在本機(jī)上測(cè)試,大概需要26分鐘!
這種方式,可能會(huì)跟隨 Xcode 版本的升級(jí)而略有改變,否則就會(huì)報(bào)錯(cuò)。
方式二: 手動(dòng)編譯,自動(dòng)打包
一般打測(cè)試包的方式

說(shuō)明
手動(dòng)編譯,生成 .app 文件
把 .app 文件放在名字為 Payload 文件夾下
壓縮文件夾,生成 .zip 文件
修改文件名:.zip -> ipa,打包完成
步驟
準(zhǔn)備工作:修改 Xcode 中的配置
Build(command + B)
執(zhí)行腳本,自動(dòng)打包并生成 .ipa 文件
腳本簡(jiǎn)介
流程圖

主要代碼
# 創(chuàng)建 Payload 文件夾
payloadPath=${basicPath}/Payload
mkdir -p ${payloadPath}
# 移動(dòng) .app 文件到 Payload 目錄下
cp -r ${appFileFullPath} ${payloadPath}
# 打包并生成 .ipa 文件
zip -q -r ${ipaFileName} ${payloadPath}
總結(jié)
TIPS
執(zhí)行腳本時(shí),可以傳入 .app 文件所在路徑,或者不傳;不傳的話,默認(rèn)從當(dāng)前路徑獲取,獲取不到報(bào)錯(cuò)
執(zhí)行腳本時(shí),如果傳入的參數(shù)不包含 .app 文件名,則需要手動(dòng)輸入,若輸入錯(cuò)誤,報(bào)錯(cuò),終止程序。
一般而言,shell 腳本配置一次之后,就再也不需要修改。屬于一勞永逸的事。
方式三: Product -> Archieve -> Export
一般打提交 App Store 包的時(shí)候,會(huì)這么操作。
相關(guān)文章
IOS 開(kāi)發(fā)之?dāng)?shù)據(jù)存儲(chǔ)writeToFile的應(yīng)用實(shí)例
這篇文章主要介紹了IOS 開(kāi)發(fā)之?dāng)?shù)據(jù)存儲(chǔ)writeToFile的應(yīng)用實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
iOS中實(shí)現(xiàn)簡(jiǎn)單易懂秒殺倒計(jì)時(shí)/倒計(jì)時(shí)代碼
這篇文章主要介紹了iOS中實(shí)現(xiàn)簡(jiǎn)單易懂秒殺倒計(jì)時(shí)/倒計(jì)時(shí)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
iOS 項(xiàng)目中的version和build 詳解
這篇文章主要介紹了iOS 項(xiàng)目中的version和build 詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11
IOS 長(zhǎng)鏈接與短鏈接之間的轉(zhuǎn)換
這篇文章主要介紹了IOS 長(zhǎng)鏈接與短鏈接之間的轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2017-06-06
ios開(kāi)發(fā)UITableViewCell圖片加載優(yōu)化詳解
這篇文章主要為大家介紹了ios開(kāi)發(fā)UITableViewCell圖片加載優(yōu)化的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

