使用Jenkins进行iOS的持续集成 - eju-front/mobile-solution GitHub Wiki
使用Jenkins进行iOS的持续集成
作者: 易居创研 前端技术部
文档版本:Creative Commons 3.0许可证 署名-禁止演绎)
本文涉及使用Jenkins对iOS进行持续集成,以提高项目的自动化过程
目录
- 安装 Jenkins
- [可选] 配置 Jenkins主题
- 申请蒲公英账号 - 内测程序分发
- 创建持续集成项目
- 执行编译过程
- 获取结果
安装 Jenkins
iOS
的编译一定基于Mac
设备进行,所以Jenkins也必须安装在一台Mac
设备上。这里给出的是在Mac
设备上安装Jenkins的过程。
参考:在 Mac mini 上架设 Jenkins 服务器来运行 iOS 测试
使用homebrew
安装Jenkins
$ brew install jenkins
然后链接 launchd 配置文件
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
可以更改此 plist 来进行一些自定义的配置,详细列表可以参考 这里
如果要其他机器也可以访问,把 plist 里的
--httpListenAddress=127.0.0.1
删掉即可
修改完后,在终端执行
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
即可启动 Jenkins
接着用浏览器访问 localhost:8080
(默认配置),就可以看到 Jenkins 的 web 界面了
[可选] 配置 Jenkins主题
在Jenkins中提供了一种插件叫做: Simple Theme Plugin
用来做Jenkins的主题配置,配合Jenkins Material Theme
进行使用,可以满足一般的视觉需求。
-
进入
管理插件
目录,通过右上角Filter选择安装Simple Theme Plugin
插件 -
安装完成之后回到
系统管理
进入系统设置
找到Theme
一栏,填写Jenkins Material Theme
的CSS地址 -
保存之后,刷新系统,就可以看到新的页面了
申请蒲公英账号 - 内测程序分发
登陆蒲公英站点,注册账号。蒲公英会提供api接口可以通过接口上传编译之后的app,具体查看这里的文档,我们会在完成编译之后上传编译好的app到蒲公英的服务器上。
创建持续集成项目
-
点击
新建
创建新的项目 -
选择自由风格的软件项目并且输入项目名,并点击OK进行确认
-
进入项目的具体配置,我们需要配置价格内容:参数、源码和脚本
- 配置参数,在
General
选项卡中 选择参数化构建过程
,点击添加参数
并且选择String Parameter
-
配置源码,在源码管理项,选择Git或者SVN
在这里,Repository URL是git地址,Credential通过点击边上的
Add
按钮进行添加,Branches to build
使用参数配置中的commitId
,每次发布的时候填写对应提交的commit
进行发布 -
配置脚本
在出现的脚步配置框中添加如下代码
if [ "$commitId" == "" ];then echo "请填写Commit ID." exit 2 fi # ipa的编译配置 developmentTeam=PRLC4HQG59 projectName=DashboardDemo codeSigningIdentifier="Apple Worldwide Developer Relations Certification Authority" provisioningProfile="/Users/leewind/Library/MobileDevice/Provisioning Profiles/c1333c69-2f70-4e96-b665-d063b712d8c0.mobileprovision" bundleIdentifier="com.cric" # 蒲公英账号配置 uKey="替换" apiKey="替换" password="替换" #build文件夹路径 buildPath=$WORKSPACE/build #生成的app文件目录 appdirname=Distribute-iphoneos cd $WORKSPACE # xcodebuild clean xcodebuild clean # xcodebuild build xcodebuild \ -workspace $WORKSPACE/${projectName}.xcworkspace \ -scheme ${projectName} \ -configuration \ CODE_SIGNING_IDENTITY="${codeSigningIdentifier}" \ PROVISIONING_PROFILE="${provisioningProfile}" \ CODE_SIGNING_REQUIRED=YES \ PRODUCT_BUNDLE_IDENTIFIER="${bundleIdentifier}" \ DEVELOPMENT_TEAM="${developmentTeam}" \ CONFIGURATION_BUILD_DIR="$WORKSPACE/build/${appdirname}/" #创建ipa-build文件夹 if [ -d ${buildPath}/ipa-build ];then rm -rf ${buildPath}/ipa-build fi mkdir ${buildPath}/ipa-build ipaName="${projectName}_$(date +"%Y%m%d")" echo $ipaName #xcrun打包 xcrun -sdk iphoneos PackageApplication -v ./build/${appdirname}/*.app -o ${buildPath}/ipa-build/${ipaName}.ipa || exit appPath="${buildPath}/ipa-build/${ipaName}.ipa" curl -F "file=@${appPath}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" -F "publishRange=2" -F "password=${password}" http://www.pgyer.com/apiv1/app/upload
其中要更新脚本内容
# ipa的编译配置 # 开发账号的组织单位,可以在钥匙串中获得 developmentTeam=PRLC4HQG59 # 项目名称 projectName=DashboardDemo # 开发账号的签发者常用名称 codeSigningIdentifier="Apple Worldwide Developer Relations Certification Authority" # 描述文件注册之后的文件地址,一般都在~/Library/MobileDevice/Provisioning Profiles/下 provisioningProfile="/Users/leewind/Library/MobileDevice/Provisioning Profiles/c1333c69-2f70-4e96-b665-d063b712d8c0.mobileprovision" # bundle identifier项目中会有具体指定 bundleIdentifier="com.cric" # 蒲公英账号配置 uKey="替换" apiKey="替换" password="替换"
根据实际的情况进行配置
点击确认完成设置
- 配置参数,在
执行编译过程
进入编译
点击Build With Parameters
填写commitId,点击开始构建
进行编译
下面可以看到编译过程,直到编译完成
获取结果
所有编译完成之后,上蒲公英,你可以获得本次编译提交的ipa的下载页面,例如:http://www.pgyer.com/0PNt