解決在Mac下搭建Jenkins+GitLab持續(xù)集成環(huán)境踩到的坑(三)

此坑也不算什么坑啦,主要是升級帶來的麻煩。

升級MacOS后,原來的Jenkins不能用了,又重新裝了一次。

XCode8后就沒有直接用XCode插件了。

構建時,直接使用Execute Shell了。


構建腳本


腳本如下:

# used to name the ipa

APP_NAME=你的應用的名稱

# project name, the same as the .xcodeproj file name

PROJECT_NAME="你的項目名稱"

# scheme name

SCHEME_NAME="Scheme名"

# profile name

DEVELOPMENT_TEAM="TeamID 如:F7XXXXXXW"

PROFILE_NAME="需要打包的Profile名"

PROFILE_UUID="XXXXXX-XXXX-4c92-XXXX-089f48dbc928"

# configuration for archive? Release或者Debug

CONFIGURATION="Release"

# login password, to unlock login keychain

LOGIN_PASSWORD="你的登錄密碼用于解鎖"

PROJECT_PATH=${WORKSPACE}/${APP_NAME}

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

rm -rf build/*

mkdir -pv build

# archive

xcodebuild clean archive -workspace "${APP_NAME}.xcworkspace" \

-scheme ${SCHEME_NAME} \

-sdk iphoneos \

-configuration "${CONFIGURATION}"? \

-archivePath build/${PROJECT_NAME}.xcarchive? \

DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \

CODE_SIGN_IDENTITY="${CODE_SIGNING_IDENTITY}"? \

PROVISIONING_PROFILE="${PROFILE_UUID}"? \

SYMROOT="${PROJECT_PATH}/build" \

|| failed "xcodebuild archive"

# export ipa

xcodebuild -exportArchive -archivePath build/${PROJECT_NAME}.xcarchive \

-exportPath build/${PROJECT_NAME} \

-exportFormat ipa \

-exportProvisioningProfile "${PROFILE_NAME}" \

-verbose \

|| failed "xcodebuild export archive"

?

因為我的APP里用到了推送,而我打包的是企業(yè)包,不支持推送,所以需要在打包前修改一下project文件。

這里面后來我又增加了兩項

# 修改企業(yè)版本不支持推送

sed -i '' '/Push = {$/N;s/Push = {.*enabled = 1;/Push = {\

enabled = 0;/' ${WORKSPACE}/${APP_NAME}/${APP_NAME}.xcodeproj/project.pbxproj

sed -i '' '/aps-environment<\/key>$/N;/key>\n.*development/d' ${ENTITLEMENTS_PATH}

用sed 命令修改文件

關于sed命令可以百度(其實是Google啦)

學習了一上,發(fā)現(xiàn)很強大呀。


補:

后來發(fā)現(xiàn) xcodebuild命令不能改profile,不知道原因了。

那就直接用sed命令去修改project文件吧,這樣總可以了吧。

sed -i '' -e 's/DEVELOPMENT_TEAM = .*;/DEVELOPMENT_TEAM = '${DEVELOPMENT_TEAM}';/g' -e 's/PROVISIONING_PROFILE = .*;/PROVISIONING_PROFILE = "'${PROFILE_UUID}'";/g' -e 's/PROVISIONING_PROFILE_SPECIFIER = .*;/PROVISIONING_PROFILE_SPECIFIER = '${PROFILE_NAME}';/g' PROJECT_NAME.xcodeproj/project.pbxproj




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

相關閱讀更多精彩內容

友情鏈接更多精彩內容