iOS: Jenkins + xcodebuild打包ipa +
2021-01-08 本文已影响0人
LionPig
前言:我使用Jenkins
做持续集成,关于jenkins
的安装我这里就不说了。直说一下和iOS
打包相关的东西
插件
Keychains and Provisioning Profiles Management
如果没有安装,在可选插件里搜索安装,重启即可。
配置插件
image.png系统配置=》拉到最下边选这个
-
选取 login.keychain
image.png
-
路径
image.png
在~/Library/Keychains
,如果没有login.keychain
,复制一个新的login.keychain-db
,然后把-db
删掉,将这个文件上传。 -
Identities
image.png
上传后,Filename
和Password
都会自动填充,这个Password
就是电脑登录的密码(当前用户)。
Identities是你添加的证书,打开keychain
->我的证书->右键证书->显示简介->复制常用名称。
可以添加多个。
-
Provisioning Profiles
image.png
去~/Library/MobileDevice/Provisioning Profiles
,拖入终端会显示整个路径,复制过来即可。
到此为止整个插件配置完成。
创建一个工程
image.png选第一个,输入工程名称,确定。
丢弃旧的构建(可选)
image.png源码管理
image.png我使用Git,credentials是登录的账号密码,如果没有添加一个即可,如下图。
image.png
构建环境
image.png选择刚才插件填写的内容。
构建(核心)
- 点击
增加构建步骤
- 选择 执行shell
image.png
archive 的 -configuration: 默认可以release
或者debug
,或者你自己的配置。
image.png
-exportArchive有一个文件adhoc_ExportOptions.plist
。
image.png
如果你不想自己创建,也可以使用
xcode
导出ipa
后,从导出的文件夹里获取。名字为ExportOptions.plist
method:
有四种渠道。我将他们做了区分,分成四个不同的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"
#创建蒲公英上传结果日志文件夹
mkdir -p ${PGYERLOG_PATH}
#创建蒲公英上传结果日志文
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"
如果你有改进或者发现错误,请告诉我,谢谢 :) !
增加
错误:pod
时候会出现 command not found
当你
jenkins
服务在非OS X系统运行时,使用Mac节点的配置稍微不一样。
-
系统管理-系统配置-全局属性
image.png
值:在终端中输入
echo $PATH
将输出内容复制填写。
- 在
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