iOSJenkins自动化打包并发布至蒲公英

[TOC]

1.Jenkins安装

首先简单介绍一下Jenkins的安装,网上有很多教程。 1.1推荐使用osx系统自带的homebrew来安装jenkins。Objc brew install Jenkins第一步需要安装至少java1.8 ,如果没有安装会有提示java安装地址 现在安装java需要有Oracle账号,无法注册的就网上找个别人已经注册的账号。

avatar

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.plist1.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.配置任务

点击左上角新建任务,创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的最大个数,按照自己的需求来就好。 由于项目中有多个环境需要配置,在此选择参数化构建。
AB75090B-F2CC-4E50-B159-604927507721.png

源码管理
image.jpeg

注意设置下Additional Behaviours以防请求超时代码下载失败。 构建触发器 接下来是构建触发器,也就是什么时候触发自动打包,这里不构建触发器。需要可自行填写。 构建环境 在构建环境里面勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的证书,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己选择的。如图
image.jpeg

直接用 fastlane 这个工具,构建环境不需要特别设置。fastlane 会自动读取本地 iOS 项目中设置的签名等信息,所以需要保证本地 iOS 工程已经设置好了正确的签名信息和 Provisioning Profiles 等文件,并在 keychain 中已经加入了正确的证书。否则后续的操作中可能会出现错误。如果这里没有设置好,请用 Xcode 打包工程进行相关设置即可。如果是xcode 插件则需要配置构建环境。 接下来就是打包了,因为Jenkins对新版的Xcode插件兼容不好,只能用脚本来打包,以下是使用fastlane来打包。点击增加构建步骤,选择执行shell脚本

5.png

因为司机端配置了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蒲公英插件上传 附上持续化打包成功图
image.jpeg

image.jpeg
image.jpeg

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等, install
type!,否则会上传失败,报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

你可能感兴趣的:(iOSJenkins自动化打包并发布至蒲公英)