[TOC]
1.Jenkins安装
首先简单介绍一下Jenkins的安装,网上有很多教程。 1.1推荐使用osx系统自带的homebrew来安装jenkins。Objc brew install Jenkins
第一步需要安装至少java1.8 ,如果没有安装会有提示java安装地址 现在安装java需要有Oracle账号,无法注册的就网上找个别人已经注册的账号。
java安装完毕,继续下面步骤,链接 launchd 配置文件Objc $ ln -sfv/usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents //如果要其他机器也可以访问,把ip地址改为广播地址:--httpListenAddress=0.0.0.0 $ launchctl load~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
1.2命令行启动Jenkins Objc jenkins
一切顺利的话,打开浏览器输入:http://localhost:8080/ 接下来按照Jenkins提示添加账号,安装推荐插件即可
2.Jenkins的使用
2.1安装Keychains and Provisioning Profiles Management(管理本地的keychain和iOS证书的插件) 在Jenkins系统管理插件管理中搜索下载即可。
2.2配置Keychains and Provisioning Profiles Management 安装好该插件,会在系统管理中出现,点击进入即可。 需要上传login.keychain文件,该文件获取方法,在终端中输入Objc cd ~/Library/Keychains
点击Keychains and Provisioning Profiles Management插件页面中的选取文件将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,也可以创建一个快捷方式名字叫做login.keychain,upload就好了。(上传keychain,路径用自己改名后的那个) 上传code signing identify,在keychain中找到对应打包证书,显示简介,将名字复制写到code signing identify这一栏即可,然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload。 Provisioning Profiles Directory Path这一栏的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles (这是固定格式,只需要把用户名替换成自己的mac用户名即可,可以试着用终端一层层进入 cd /Users/用户名/Library/MobileDevice)
3.配置任务
点击左上角新建任务,创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的最大个数,按照自己的需求来就好。 由于项目中有多个环境需要配置,在此选择参数化构建。直接用 fastlane 这个工具,构建环境不需要特别设置。fastlane 会自动读取本地 iOS 项目中设置的签名等信息,所以需要保证本地 iOS 工程已经设置好了正确的签名信息和 Provisioning Profiles 等文件,并在 keychain 中已经加入了正确的证书。否则后续的操作中可能会出现错误。如果这里没有设置好,请用 Xcode 打包工程进行相关设置即可。如果是xcode 插件则需要配置构建环境。 接下来就是打包了,因为Jenkins对新版的Xcode插件兼容不好,只能用脚本来打包,以下是使用fastlane来打包。点击增加构建步骤,选择执行shell脚本
因为司机端配置了fastlane,司机端开发也可自行在终端进行自动化打包。没有配置的,在电脑安装下fastlane环境,之前都有写如何安装fastlane环境。 安装好fastlane环境,也可以写以下代码打包。蒲公英Jenkins + fastlane自动化打包文档
Objc IPANAME="jinkens-myapp" fastlane gym --export_method ad-hoc --output_name ${IPANAME} MSG=
git log -1 --pretty=%BPASSWORD=123456 curl -F "file=@${IPANAME}" -F "uKey=USER_KEY" -F "_api_key=API_KEY" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" https://qiniu-storage.pgyer.com/apiv1/app/upload
也可使用文章后上传的脚本或者查询资料写其他脚本打包。 上传蒲公英也可使用jenkins插件UPLOAD TO PGYER,下载该插件,增加构建步骤,选择该插件即可。Jenkins蒲公英插件上传 附上持续化打包成功图 4.踩坑记录
4.1 本文使用的打包方式,如果jenkins控制台输出报找不到Xcode Comand Line Tools,去Xcode偏好设置,location 勾选Comand Line Tools
4.2 如果jenkins控制台输出报找不到pyger plugins 终端cd到jenkins下载的项目根目录 执行fastlane addplugin pgyer
4.3 如果选择的参数化构建,发现选择打包的scheme对不上jenkins选择的scheme,则去Xcode manager scheme 取消勾选target再重新勾上就行。
4.4 蒲公英最近改动,现在上传强制需要邀请访问方式,需要设置密码,或者回答问题,所以在写脚本时,一定要设置password等, installtype!,否则会上传失败,报installType error错误。
4.5 使用shell脚本 xcodebulid时,注意shell脚本空格传参问题,带空格的参数加双引号,例如"${scheme_name}"
4.6 描述文件设置,将jenkins部署的电脑配置好证书和描述文件,否则无法打包 4.7 shell脚本编译方式设置UseModernBuildSystem,否则项目编译可能会报重复库错误
4.8 jenkins打包请勿使用development描述文件,否则无法打包 4.9如果切换tag,或者分支,jenkins打包报找不到对应scheme,则在Xcode manager scheme,勾上需要的scheme,并点击右上角Autocreate Schemes Now