一 、安装jenkins

brew install jenkins-lts

启动

brew services start jenkins-lts

进入Jenkins ,在浏览器中输入 http://localhost:8080 ,进入Jenkins
请添加图片描述
将自动生成的管理员密码复制到输入框中,点击继续
请添加图片描述
创建一个管理员账号
请添加图片描述
进行实例配置,我这里使用的是默认的(即自动填入的)
然后就进入了安装插件页面,我选择了安装推荐的插件
请添加图片描述

二、 jenkins配置

general 没有配置
请添加图片描述

码源管理进行了配置
我这里只配置了git (URL 和 分支) , 注意,我们配置了git 之后,每次我们
点击构建,都会从git 仓库拉取最新代码,jenkins 已经为我们
集成好了拉取代码的功能,并且,我这里也并没有添加
凭据,就可以直接拉取代码了。
请添加图片描述

证书和钥匙串以及描述文件(provisionprofile)我都没有在jenkins中配置,因为我在工程中已经配置好了,这里需要注意一点,我们的jenkins 只是一个 集合了一套流程的系统,他并不会将我们Xcode自身的配置覆盖掉,所以,证书和描述文件完全可以在Xcode 中进行配置

构建触发器和构建环境也不用管
请添加图片描述
因为我的archive 操作是通过脚本执行的,证书也在Xcode中配置好了,所以就没有用到
Xcode integration 插件

配置脚本
请添加图片描述

三 、执行脚本

我这里的archive , 导出ipa文件,上传蒲公英都是通过脚本执行的,所以并没有用到xcode build 插件
以下是所有脚本

# 声明要用到的解释器
#!/bin/bash -l

# 设置终端使用UTF-8编码,这样才支持cocoapods 
export LANG=en_US.UTF-8

# jenkins 工作区的工程路径 (checkout 之后自动生成的)
CODE_PATH="/Users/liubo/.jenkins/workspace/liubotest"

# 我打包的目标文件夹(自己创建的)
ROOT_PATH="/Users/liubo/Desktop/Jenkins"

# 当前日期
DATE=$(date +%Y%m%d-%H-%M-%S)

# archive 文件名
ARCHIVE_NAME="${APP_NAME}_${DATE}.xcarchive"

# app名称
APP_NAME="ThePaperBase"

# archive 文件路径
ARCHIVE_PATH="${ROOT_PATH}/Archive/${ARCHIVE_NAME}"
# ipa  文件夹名称
IPANAME="${APP_NAME}_${DATE}_IPA"
# ipa 文件夹路径
IPA_PATH="${ROOT_PATH}/Export/${IPANAME}"

# 指ipa定输出文件夹,如果有删除后再创建,如果没有就直接创建
if test -d ${EXPORTPATH}; then
    rm -rf ${EXPORTPATH}
    mkdir -pv ${EXPORTPATH}
     echo ${EXPORTPATH}
else
     mkdir -pv ${EXPORTPATH}
fi
#  ExportOptions.plist 路径, (自己先打好一个包后生成的文件放到该路径)
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions/ExportOptions.plist

#进入到工程根目录
cd "${CODE_PATH}"
# 执行 pod install
pod install

# archive 
xcodebuild archive -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration Debug -archivePath ${ARCHIVE_PATH}
# 导出ipa 包
xcodebuild -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath "${IPA_PATH}" -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} -allowProvisioningUpdates
file_path="${IPA_PATH}/${APP_NAME}.ipa"
# 删除archive文件
rm -rf $ARCHIVE_PATH
# 上传蒲公英
curl -F "file=@${file_path}" -F "uKey=45d2be1046a2db153cda3552207c1a6a" -F "_api_key=c7eb05bf55cbcbcb0687c59977a4c705" https://qiniu-storage.pgyer.com/apiv1/app/upload

注意其中的 ExportOptions.plist文件都是自己预先通过打包生成的文件
我这里是放到工程的根目录下了
请添加图片描述

配置使用 ip 地址访问Jenkins

进入 /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 路径下的文件

plist中的httpListenAddress后的ip地址,修改为本机IP或者0.0.0.0

修改完成后,重启Jenkins,接下来就可以使用IP访问了。请添加图片描述

如果打包机地址是192.168.0.109,
则可以在其他电脑浏览器中输入 192.168.0.109 :8080 访问

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐