iOS自動打包腳本

之前在Xcode8之前,寫過一個自動打包腳本,一次可以打包多個不同渠道的包,后來Xcode升級后,不能用了,因為8之后,使用xcodebuild命令,需要exportOptionsPlist參數(shù),才能導(dǎo)出ipa,所以要改造一下:

一、準(zhǔn)備配置信息build.config

# used to name the ipa

app_name=myproject

#工程絕對路徑

project_path=$(pwd)

#工程名

project_name=$app_name

#scheme名

scheme_name=$project_name

project_infoplist_path=${project_path}/${project_name}/Info.plist

#build文件夾路徑

build_path=${project_path}/build

# 渠道 測試、發(fā)布

CONFIGURATIONS="Debug Release"

# 發(fā)布包配置

ProvisionFile?Debug="6de66157-ef56-4ab8-8eb5-32c902d42xxx"

CodesignDebug="iPhone Distribution: xxxx"

BundleIdDebug="com.xxx.myproject"

ProvisionFileNameDebug="xxxAd"

ProvisionFileRelease="338587dc-1194-4f0f-94b2-ef94c6945xxx"

CodesignRelease="iPhone Distribution: xxxx"

BundleIdRelease="com.xxx.myproject"

ProvisionFileNameRelease="xxxRelease"

# 電腦的登錄密碼

LOGIN_PASSWORD="xxx"

二、exportOptionsDebug.plist參數(shù)設(shè)置(Release的把method修改為app-store即可)


這里的'method': 可選項為 {app-store, ad-hoc, enterprise, development}

三、自動打包腳本autoPack.sh

# read config

. ./build.config

# unlock login keygen

security unlock-keychain -p ${LOGIN_PASSWORD} ${LOGIN_KEYCHAIN} || failed "unlock-keygen"

for config in $CONFIGURATIONS; do

#導(dǎo)出.ipa文件所在路徑

exportFilePath=${build_path}/${config}-iphoneos

#plist文件所在路徑

exportOptionsPlistPath=${project_path}/exportOptions$config.plist

echo '*** 正在 清理工程 ***'

xcodebuild \

clean -configuration ${config} -quiet? || exit

echo '*** 清理完成 ***'

echo '*** 正在 編譯工程 For '${config}

provfile=$(eval echo \$`echo ProvisionFile$config`)

codesign=$(eval echo \$`echo Codesign$config`)

bundleid=$(eval echo \$`echo BundleId$config`)

provisionfile=$(eval echo \$`echo ProvisionFileName$config`)

#取版本號

bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${project_infoplist_path})

echo '*** 當(dāng)前版本:'$bundleShortVersion

xcodebuild \

archive -workspace ${project_path}/${project_name}.xcworkspace \

-scheme ${scheme_name} \

-configuration ${config} \

-destination generic/platform=iOS \

CODE_SIGN_IDENTITY="${codesign}" \

PRODUCT_BUNDLE_IDENTIFIER=$bundleid \

PROVISIONING_PROFILE=$provfile \

-archivePath ${build_path}/${project_name}.xcarchive -quiet? || exit

echo '*** 編譯完成 ***'

echo '*** 正在 打包 ***'

xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \

-configuration ${config} \

-exportPath ${exportFilePath} \

-exportOptionsPlist ${exportOptionsPlistPath} \

-quiet || exit

if [ -e $exportFilePath/$scheme_name.ipa ]; then

echo "*** .ipa文件已導(dǎo)出 ***"

open $exportFilePath

else

echo "*** 創(chuàng)建.ipa文件失敗 ***"

fi

echo '*** 打包完成 ***'

mv $exportFilePath/$scheme_name.ipa $exportFilePath/${scheme_name}_V${bundleShortVersion}.ipa || failed "mv ipa"

done

四、把腳本文件放在項目的根目錄下(有workspace的目前)

打開終端,cd 到項目所在路徑,執(zhí)行sh auto.sh回車,等待一會,在build目錄就會出現(xiàn)對應(yīng)的渠道的ipa

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用fir.im測試已經(jīng)好長時間了,感覺每次打包上傳都很麻煩,網(wǎng)上看了下,確實有打包的腳本,摸索了下,將兩者...
    屬魚的加菲貓閱讀 2,771評論 2 5
  • 最近公司業(yè)務(wù)很閑,就開始自學(xué)Python,想著練練手就準(zhǔn)備把iOS產(chǎn)品交付測試的流程自動化。下面記錄一下在這過程中...
    _61x_閱讀 1,121評論 0 2
  • iOS 打包腳本 build.sh 版本號自增和打包時間 Run Script 常見錯誤 xcodebuild -...
    山天大畜閱讀 785評論 0 2
  • xcodebuild Xcode打包腳本 github地址test) 怎么用它? clone 工程 打開終端cd到...
    fanrr閱讀 555評論 0 3
  • 清明假期第一天,回老家了。 回老家這件事于我,在六七年前母親故去之后,就不再是愜意的事,三年前大嫂...
    海藍(lán)26閱讀 398評論 0 0

友情鏈接更多精彩內(nèi)容