前言:我使用Jenkins
做持續(xù)集成,關于jenkins
的安裝我這里就不說了。直說一下和iOS
打包相關的東西
插件
Keychains and Provisioning Profiles Management
截屏2021-01-08 下午3.25.36.png
如果沒有安裝,在可選插件里搜索安裝,重啟即可。
配置插件
image.png
系統(tǒng)配置=》拉到最下邊選這個
-
選取 login.keychain
image.png -
路徑
image.png
在~/Library/Keychains
,如果沒有login.keychain
,復制一個新的login.keychain-db
,然后把-db
刪掉,將這個文件上傳。 -
Identities
image.png
上傳后,Filename
和Password
都會自動填充,這個Password
就是電腦登錄的密碼(當前用戶)。
Identities是你添加的證書,打開keychain
->我的證書->右鍵證書->顯示簡介->復制常用名稱。
image.png
可以添加多個。
-
Provisioning Profiles
image.png
去~/Library/MobileDevice/Provisioning Profiles
,拖入終端會顯示整個路徑,復制過來即可。
到此為止整個插件配置完成。
創(chuàng)建一個工程
image.png
選第一個,輸入工程名稱,確定。
丟棄舊的構建(可選)
image.png
源碼管理
image.png
我使用Git,credentials是登錄的賬號密碼,如果沒有添加一個即可,如下圖。
image.png
構建環(huán)境
image.png
選擇剛才插件填寫的內(nèi)容。
構建(核心)
- 點擊
增加構建步驟
- 選擇 執(zhí)行shell
image.png
archive 的 -configuration: 默認可以release
或者debug
,或者你自己的配置。
image.png
-exportArchive有一個文件adhoc_ExportOptions.plist
。
image.png
如果你不想自己創(chuàng)建,也可以使用
xcode
導出ipa
后,從導出的文件夾里獲取。名字為ExportOptions.plist
method:
有四種渠道。我將他們做了區(qū)分,分成四個不同的plist
文件。
類別有
development
ad-hoc
app-store
enterprise
到此為止打包成功
上傳至蒲公英
我使用cURL
直接上傳到蒲公英,附蒲公英API,獲取_api_key
也是在這個頁面
我還保存了蒲公英返回的結果
具體情況參考最終腳本
。
最終腳本
-
{USERNAME}
需要替換為你自己的路徑 - shell
#!/bin/sh
# 文件名前綴
APP_NAME="MainProject"
TARGET_NAME="MainProject"
# info.plist路徑
#project_infoplist_path="./${TARGET_NAME}/Info.plist"
#取版本號
#bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
#bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
DATE=$(date +%Y%m%d-%H-%M-%S)
ARCHIVE_NAME="${APP_NAME}_${DATE}.xcarchive"
IPANAME="${APP_NAME}_${DATE}_IPA"
#步驟1-獲取iOS工程
cd /Users/{USERNAME}/.jenkins/workspace/TEST
pod install --verbose --no-repo-update
#mkdir -p build
#要上傳的ipa文件路徑
ROOT_PATH="/Users/{USERNAME}/Desktop/Jenkins"
ARCHIVE_PATH="${ROOT_PATH}/Archive/${ARCHIVE_NAME}"
IPA_PATH="${ROOT_PATH}/Export/${IPANAME}"
echo "ARCHIVE_PATH: ${ARCHIVE_PATH}"
echo "IPA_PATH: ${IPA_PATH}"
echo "IPA_PATH:\n${IPA_PATH}">> export_history.txt
#步驟2-打包ipa
xcodebuild clean
xcodebuild archive -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration release -archivePath ${ARCHIVE_PATH}
xcodebuild -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath "${IPA_PATH}" -exportOptionsPlist "${ROOT_PATH}/ExportOptions/adhoc_ExportOptions.plist" -allowProvisioningUpdates
#步驟3-上傳至蒲公英
PGYERLOG_PATH="${IPA_PATH}/upload_pgyer_log"
#創(chuàng)建蒲公英上傳結果日志文件夾
mkdir -p ${PGYERLOG_PATH}
#創(chuàng)建蒲公英上傳結果日志文
touch "${PGYERLOG_PATH}/log.txt"
#上傳至蒲公英
curl -F "_api_key=你的key" -F "file=@${IPA_PATH}/${TARGET_NAME}.ipa" https://www.pgyer.com/apiv2/app/upload 2>&1 | tee "${PGYERLOG_PATH}/log.txt"
如果你有改進或者發(fā)現(xiàn)錯誤,請告訴我,謝謝 :) !
增加
錯誤:pod
時候會出現(xiàn) command not found
當你
jenkins
服務在非OS X系統(tǒng)運行時,使用Mac節(jié)點的配置稍微不一樣。
-
系統(tǒng)管理-系統(tǒng)配置-全局屬性
image.png
值:在終端中輸入
echo $PATH
將輸出內(nèi)容復制填寫。
- 在
pod install
之前添加命令
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
不然會報錯類似下圖:
1761610121081_.pic_hd.jpg