前言:我使用Jenkins做持续集成,关于jenkins的安装我这里就不说了。直说一下和iOS打包相关的东西
插件
Keychains and Provisioning Profiles Management

截屏2021-01-08 下午3.25.36.png
如果没有安装,在可选插件里搜索安装,重启即可。
配置插件

image.png
系统配置=》拉到最下边选这个
-
选取 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,拖入终端会显示整个路径,复制过来即可。
到此为止整个插件配置完成。
创建一个工程

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.plistmethod:有四种渠道。我将他们做了区分,分成四个不同的plist文件。
类别有
developmentad-hocapp-storeenterprise
到此为止打包成功
上传至蒲公英
我使用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






