iOS自動(dòng)打包并上傳到蒲公英

參考1
參考2并上傳

自動(dòng)打包的前提:至少手動(dòng)打包過一次,因?yàn)闀?huì)關(guān)系到第二步(我是這么操作的)

第一步 在項(xiàng)目目錄下創(chuàng)建 自動(dòng)打包.sh 文件 (自動(dòng)打包 這個(gè)名字可以自己取)

cd *項(xiàng)目文件*
touch 自動(dòng)打包.sh
復(fù)制下面到 自動(dòng)打包.sh,修改下面的project_name、scheme、development_mode、uKey、_api_key
特別注意,是否使用了CocoaPods,查看下面的代碼塊中的  特別注意


#使用方法
if [ ! -d ./IPADir ];
then
mkdir -p IPADir;
fi

#工程絕對路徑
project_path=$(cd `dirname $0`; pwd)

#工程名
project_name="******"

#scheme名,同上
scheme_name="*****"

#打包模式 Debug/Release
development_mode= Release

#build文件夾路徑
build_path=${project_path}/build

#plist文件所在路徑
exportOptionsPlistPath=${project_path}/exportTest.plist

#導(dǎo)出.ipa文件所在路徑
exportIpaPath=${project_path}/IPADir/${development_mode}

#應(yīng)用安裝包文件的路徑
filePath=${project_path}/IPADir/${project_name}.ipa



echo '正在清理工程'

xcodebuild clean -configuration ${development_mode} -quiet  || exit

echo '清理完成'

echo '正在編譯工程:'${development_mode}
####  特別注意
#打包的工程文件分兩種(是否包含cocoapods):project和workspace,如果需要打包的是project,則在archive中將-workspace替換為-project,將.xcworkspace的路徑替換為.xcodeproj的路徑
#archive -workspace ${project_name}.xcworkspace
#archive -project   ${project_name}.xcodeproj

xcodebuild archive -archivePath ${build_path}/${project_name}.xcarchive -workspace ${project_name}.xcworkspace -scheme ${scheme_name} -configuration ${development_mode}   -quiet  || exit

echo '編譯完成'

echo '開始ipa打包'

xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive -exportPath ${exportIpaPath} -exportOptionsPlist ${exportOptionsPlistPath} -configuration ${development_mode} -quiet || exit

if [ -e $exportIpaPath/$scheme_name.ipa ]; then
echo 'ipa包已導(dǎo)出'
open $exportIpaPath
else
echo 'ipa包導(dǎo)出失敗 '
fi
echo '打包ipa完成  '

echo '開始上傳到蒲公英'

#https://www.pgyer.com/doc/view/upload_one_command  查找uKey和_api_key
curl -F "file=@$filePath" \
-F "uKey=********" \
-F "_api_key=********" \
https://www.pgyer.com/apiv1/app/upload
echo '上傳完成'

第二步 exportTest.plist 文件

如果打包過,在Xcode->Window->organizer->項(xiàng)目->app store / ad-hoc ->下載到本地->打開文件夾->ExportOptions.plist->改名為 exportTest.plist

第三步

 1.  把exportTest.plist和自動(dòng)打包.sh 一起放在項(xiàng)目目錄下
 2.  cd 項(xiàng)目目錄
 3.  chmode +x  自動(dòng)打包.sh
 4.  ./自動(dòng)打包.sh
注意:每次重新進(jìn)行4時(shí),在項(xiàng)目目錄下如果有通過 自動(dòng)打包.sh 創(chuàng)建的build文件夾,要先把的build文件夾刪除

自己遇到的問題

xcodebuild[47029:2402102] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/vs/n9h9vgh55xq1hmfry3n0_p9c0000gn/T/Chainup_2020-02-16_14-40-08.682.xcdistributionlogs'.
error: exportArchive: The data couldn’t be read because it isn’t in the correct format.

Error Domain=NSCocoaErrorDomain Code=3840 "No value." UserInfo={NSDebugDescription=No value., NSFilePath=/var/folders/vs/n9h9vgh55xq1hmfry3n0_p9c0000gn/T/ipatool-json-filepath-~~~SRY1mT}

** EXPORT FAILED **

解決:
1、把xcode上的BitCode關(guān)閉,設(shè)置成No即可,project和targets里面對應(yīng)的BitCode都需要關(guān)閉,
2、把第二步exportTest.plist中compileBitcode 的value由 true改成 false


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

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