Jenkins中iOS打包shell腳本

###############設(shè)置需編譯的項(xiàng)目配置名稱(chēng)
buildConfig="Release" #編譯的方式,有Release,Debug,自定義的AdHoc等

##########################################################################################
##############################以下部分為自動(dòng)生產(chǎn)部分,不需要手動(dòng)修改############################
##########################################################################################
projectName=`find . -name *.xcodeproj | awk -F "[/.]" '{print $(NF-1)}'` #項(xiàng)目名稱(chēng)
target_name="Escort"  
workspace_name="${target_name}.xcworkspace" 
scheme="$target_name"  
ExportOptionsPlistPath="./AdHocExportOptionsPlist.plist"

scheme_name="Escort"

# 強(qiáng)制刪除舊的文件夾
#rm -rf ./$scheme_name-IPA
# 指定輸出ipa路徑
export_path=./$scheme_name-IPA
# 指定輸出歸檔文件地址
export_archive_path="$export_path/$scheme_name.xcarchive"
# 指定輸出ipa地址
export_ipa_path="$export_path"

projectDir=`pwd` #項(xiàng)目所在目錄的絕對(duì)路徑

buildAppToDir=$projectDir/build #編譯打包完成后.app文件存放的目錄


isWorkSpace=true  #判斷是用的workspace還是直接project,workspace設(shè)置為true,否則設(shè)置為false

echo "~~~~~~~~~~~~~~~~~~~開(kāi)始編譯~~~~~~~~~~~~~~~~~~~"

###############進(jìn)入項(xiàng)目目錄
cd $projectDir
#rm -rf ./build
buildAppToDir=$projectDir/build #編譯打包完成后.app文件存放的目錄


###############獲取版本號(hào),bundleID
infoPlist="$projectDir/Escort/Escort/Info.plist"

bundleVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
bundleIdentifier=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $infoPlist`
bundleBuildVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $infoPlist`
###############開(kāi)始編譯app
    echo "版本信息"
    echo $bundleVersion
    echo $bundleIdentifier

    echo $bundleBuildVersion
    

    echo $projectName  
    

    echo -workspace
    security unlock-keychain -p "103503" ~/Library/Keychains/login.keychain
    echo "~~~~~~~~~~~~~~~~~~~pod install~~~~~~~~~~~~~~~~~~~"
    
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    export LC_ALL=en_US.UTF-8

        #第一次執(zhí)行了pod之后就不用再次執(zhí)行了
    #pod install --verbose --no-repo-update  
    echo  "開(kāi)始編譯workspace...." 


    xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -configuration $buildConfig -archivePath $export_archive_path

#CODE_SIGN_IDENTITY="iOS Distribution: Beijing Ubox Science & Trading Co, Ltd." PROVISIONING_PROFILE="32ba6a9e-e4d8-46e6-950d-af55549d831a"
  
    echo "~~~~~~~~~~~~~~~~~~~ 編譯完成~~~~~~~~~~~~~~~~~~~"
    
    echo "~~~~~~~~~~~~~~~~~~~ 開(kāi)始打包~~~~~~~~~~~~~~~~~~~"

    appDir=$projectDir/  #app所在路徑
    echo "開(kāi)始打包$projectName.app成$projectName.ipa....."

    echo "打包地址$export_archive_path"
    echo "輸出地址$export_ipa_path"

    xcodebuild -exportArchive -archivePath $export_archive_path -exportPath $export_ipa_path -exportOptionsPlist $ExportOptionsPlistPath CODE_SIGN_IDENTITY="iOS Distribution: Beijing Ubox Science & Trading Co, Ltd." PROVISIONING_PROFILE="32ba6a9e-e4d8-46e6-950d-af55549d831a"


fir login  7b444bd2c652a260d074845df04d2183
fir publish $export_ipa_path/Escort.ipa


#上傳到fir
#fir publish $export_ipa_path/Escort.ipa -T firtoken -c "7b444bd2c652a260d074845df04d2183"



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

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

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