iOS 自動(dòng)化構(gòu)建 xcodebuild

xcidebuild

apple 官網(wǎng) xcodebuild 文檔

使用 shell 實(shí)現(xiàn) clean、build、archive、export 等功能
自動(dòng)化構(gòu)建主要還是使用 clean、archive、export

  • 先用 xcode 手動(dòng)打個(gè)包,比如 ad_hot 的包并導(dǎo)出,可以得到 ipa 包,以及「ExportOptions.plist」以供后續(xù)使用(打 appstore 包,也會(huì)有一個(gè))

project 自動(dòng)簽名

#!/bin/bash

# jenkins 下,默認(rèn)是項(xiàng)目文件夾,也是默認(rèn)參數(shù)(此處用以本機(jī)測(cè)試)
WORKSPACE=~/Desktop/test

# 項(xiàng)目路徑
PROJECT_NAME="test"
TARGET_NAME="test"
PROJECT_PATH=${WORKSPACE}/$PROJECT_NAME.xcodeproj

# 輸出配置
# EXPORT_OPTIONS_PLIST 的 plist 就是打包來的 ExportOptions.plist,修改了名字
EXPORT_OPTIONS_PLIST=${WORKSPACE}/export/export_ad_hot.plist
RES_DIR=~/Desktop/${TARGET_NAME}pack
RES_ARCHIVE_PATH=${RES_DIR}/ach.xcarchive
RES_IPA_DIR=${RES_DIR}/ipa
RES_IPA_PATH=${RES_IPA_DIR}/${TARGET_NAME}.ipa


# clean
xcodebuild OTHER_CFLAGS="-fembed-bitcode" clean -project $PROJECT_PATH -scheme $TARGET_NAME

# archive
xcodebuild OTHER_CFLAGS="-fembed-bitcode" archive -archivePath $RES_ARCHIVE_PATH  -project $PROJECT_PATH -scheme $TARGET_NAME

# export
xcodebuild OTHER_CFLAGS="-fembed-bitcode" -exportArchive -archivePath $RES_ARCHIVE_PATH -exportPath $RES_IPA_DIR -exportOptionsPlist $EXPORT_OPTIONS_PLIST

echo "打包成功:${RES_IPA_PATH}"

workspace 手動(dòng)簽名

#!/bin/bash

# jenkins 下,默認(rèn)是項(xiàng)目文件夾,也是默認(rèn)參數(shù)(此處用以本機(jī)測(cè)試)
WORKSPACE=~/Desktop/qiakr

export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312

# 項(xiàng)目路徑
WORKSPACE_NAME="xxx"
TARGET_NAME="xxx"
WORKSPACE_PATH=${WORKSPACE}/RealCloud/xxxx/${WORKSPACE_NAME}.xcworkspace

# 項(xiàng)目配置
BUILD_CONFIG="Release"
PRODUCT_BUNDLE_IDENTIFIER="com.xxx.xxxx.app"
CODE_SIGN_IDENTITY="iPhone Distribution: Hangzhou xxxx Technology Co, Ltd. (xxxx)"
PROVISIONING_PROFILE="xxxx-e40b-487b-8a2c-xxxxx"
ENABLE_BITCODE="YES"

# 輸出配置
EXPORT_OPTIONS_PLIST=~/Desktop/ad_hot_qa.plist
RES_DIR=~/Desktop/${TARGET_NAME}-pack
RES_ARCHIVE_PATH=${RES_DIR}/ach.xcarchive
RES_IPA_DIR=${RES_DIR}/ipa
RES_IPA_PATH=${RES_IPA_DIR}/${TARGET_NAME}.ipa

# clean
xcodebuild OTHER_CFLAGS="-fembed-bitcode" clean -workspace $WORKSPACE_PATH -scheme $TARGET_NAME

# archive
xcodebuild OTHER_CFLAGS="-fembed-bitcode" archive -archivePath $RES_ARCHIVE_PATH -workspace $WORKSPACE_PATH -scheme $TARGET_NAME -configuration $BUILD_CONFIG CODE_SIGN_IDENTITY="${CODE_SIGN_IDENTITY}" PROVISIONING_PROFILE=${PROVISIONING_PROFILE} PRODUCT_BUNDLE_IDENTIFIER=${PRODUCT_BUNDLE_IDENTIFIER} ENABLE_BITCODE=${ENABLE_BITCODE}

# export
xcodebuild OTHER_CFLAGS="-fembed-bitcode" -exportArchive -archivePath $RES_ARCHIVE_PATH -exportPath $RES_IPA_DIR -exportOptionsPlist $EXPORT_OPTIONS_PLIST

echo "打包成功:${RES_IPA_PATH}"

相關(guān)說明

project 和 workspace 都是可以手動(dòng)和自動(dòng)的,手動(dòng)的話需要配置證書和配置文件
pod 之后的就對(duì)應(yīng)使用 workspace,不使用 project

附錄1:上傳蒲公英

蒲公英文檔

很簡(jiǎn)單,注意 path 即可

path=$RES_IPA_PATH
API_KEY=742cd3ecae1032adc45a6ce59d759c7f
MSG="QA 測(cè)試包-正式環(huán)境"

a=$(curl -F "file=@$path" -F "_api_key=$API_KEY" -F "buildUpdateDescription=${MSG}" https://www.pgyer.com/apiv2/app/upload)

附錄2:jenkins 補(bǔ)充

# 構(gòu)建后操作:補(bǔ)充個(gè)二維碼下載安裝鏈接
# set build description
# "appQRCodeURL":"(.*)"
# <img src='\1' width=144 height=144> <a href='\1'>二維碼</a>

附錄3:sh 運(yùn)行權(quán)限

添加本地 sh 文件運(yùn)行權(quán)限
chmod u+x ~/Desktop/test.sh
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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