Jenkins+Xcode实现自动打包 下
1、安装Homebrew,Homebrew 是Mac系统的包管理器,用于安装一些其他必需的工具软件,比如NodeJS,Jenkins等。已经安装的请略过。
本文使用的Homebrew 1.3.5,使用命令$ brew --version查看。
2、安装Jenkins,
在终端执行
$ brew install Jenkins
Jenkins需要Java环境,请确保已经集成Java环境,安装不成功请移步百度。
安装Jenkins安装成功之后切换到Jenkins目录,启动
$ cd /usr/local/Cellar/jenkins/2.84/libexec
$ java -jar ./jenkins.war (也可以使用$ jenkins进行启动,前者可以设置端口号$ java -jar jenkins.war --httpPort=8888 )
控制台会打印一些内容
控制台 启动Jenkins上图红线上方有一句话 ,
Please use the following password to proceed to installation:
因此打开http://localhost:8080,输入密码继续安装。
打开http://localhost:8080,输入密码选择install selected plugins之后
选择install plugins之后安装成功之后会让你注册
注册Jenkins注册成功之后
注册成功跳转下图所示界面
安装启动到此为止或者直接使用$ jenkins启动,出现下图说明启动成功
启动成功3、配置Jenkins
①安装需要用到的插件
系统管理->插件管理->可选插件 搜索Git plugin、GitHub Organization Folder Plugin、Xcode integration、Keychains and Provisioning Profiles Management安装
以上分别是Git插件,Xcode插件,证书管理插件,还可以根据需要安装命令行插件。
安装成功之后重启Jenkins。
②配置证书
系统管理-> Keychains and Provisioning Provisioning Management
打开/Users/{用户名}/Library/Keychains/目录选择login.keychain文件点击upload
Code Signing Identity :配置打包要用的证书。
Provisioning Profiles Directory Path:/Users/{用户名}/Library/MobileDevice/Provisioning Profiles/
点击选择文件,选择Provisioning Profiles Directory Path路径下的文件,upload。会加载上传的provisioningprofile文件
配置钥匙串与Provisioning Profiles③系统设置
系统管理->系统设置->Xcode builder
系统设置④新建项目
回到首页,选择新建,创建一个自由风格的软件
新建项目⑤配置项目
填写项目名称
填写项目名称与地址源码管理
Repository URL :仓库地址
Credentials: 选择高级 设置好Git的账户密码之后,这里选择设置好的账号密码。
Branches to build:默认指定主分支
源码管理构建触发器
Build periodically (定时build):设置每天23点build
Poll SCM (poll source code management) 轮询源码管理
需要设置源码的路径才能起到轮询的效果。一般设置为类似结果: 0/5每5分钟轮询一次
构建触发器构建
选择Xcode构建
基本配置
导出包的格式与位置
钥匙串
使用cocoapods管理项目的需要如下配置
Xcode workspace file:{项目名}.xcworkspace文件位置
cocoapods项目配置保存之后,选择立即构建,
构建结果 归档成功后生成的文件哎呀呀,失败了,点进去查看下日志。
"Error Domain=IDEProvisioningErrorDomain Code=9 \"\"Test8.app\" requires a provisioning profile.\" UserInfo={NSLocalizedDescription=\"Test8.app\" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}"
)}
error: exportArchive: "Test8.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""Test8.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="Test8.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
** EXPORT FAILED **
需要在导出plist文件(也就是上图中development86xxxxxPPExport.plist)中添加provisioningProfiles属性。先不要修改plist,因为这个文件是根据我们构建的时候填写的参数自动生成的。
其实这个这个问题是Jenkins版本与Xcode版本不对应造成的。
使用sudo xcode-select -switch /Applications/Xcode8.3.app切换到Xcode8.3,
立即构建->成功啦。
构建成功那么问题来了,由于swift版本的问题,公司的项目只能在Xcode8.2上运行,其他Xcode构建会失败。
怎么办呢,使用万能的命令行吧,想怎么样就怎么样。不用考虑Jenkins版本问题。
只需要在构建的时候选择Execute shell 自动构建命令
Execute shell到此,大家赶紧给自己的项目配置下自动打包环境吧。
ad-hoc修改export method,但是从日志中查看,签名依然使用的开发证书。
是因为Xcode自动管理管理证书,signing certificate 使用的是开发证书,如果需要指定证书打包,那么取消自动管理。
自动管理签名很有用
还有一个很实用的东西--构建后操作
构建成功后可以邮件通知相关人员,还可以钉钉通知,具体操作请百度。
构建后操作以上就是全部内容。希望对大家有帮助,写的不对的地方,还请批评指正。