JenKins+Xcode+git实现ipa自动化打包
简介:JenKins是基于Java开发的一种持续集成工具,用于秩序监控重复工作。
安装:JenKins官网下载:https://jenkins.io/index.html
也可以从我地方下载,传送门:https://download.csdn.net/download/weixin_42045633/10576832
下载选项选择:Long-term Support (LTS)-》Mac OS X
下载完后得到安装包:jenkins-2.107.3.pkg,双击安装:(安装类型取消start at boot as "jenkins",即取消开机自启)
安装完成后,得到如下页面:
ps:如果安装完没有跳转该页面,执行命令:
open /Applications/Jenkins/jenkins.war
或在浏览器直接打开:
http://localhost:8080/
打开终端,输入上图红色文字命令,即:/Users/Shared/Jenkins/Home/secrets/initialAdminPassword,可以得到一串密码,输入到Administrator password中即可,进入下一个页面。(sudo vim /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
使用root权限打开,否则密码不可见)
选择安装插件:Install suggested plugins,然后注册,ok完成后即安装完成。(原来打开的jenkins要退出!要退出!即http://localhost:8080/exit)
Mac下命令启动和关闭Jenkins
启动jenkins服务:java -jar /Applications/Jenkins/jenkins.war –httpPort=8080
关闭jenkins服务:用ps命令找到jenkins的pid号,再kill -9 xxxx
jenkins安装遇到的问题:
1.jenkins安装默认主目录路径为/Users/Shared/Jenkins/Home,导致编译的时候证书没有权限,编译不通过
解决方案(更改jenkins主目录方法):
1.jenkins退出关闭(http://localhost:8080/exit或kill 相应pid(上面有介绍)),用命令ps查看jenkins是否真的关闭
2.转到/etc目录,打开文件profile,在以后添加export JENKINS_HOME=xxxxx(自定义主目录路径),保存
3.命令source /etc/profile,是配置文件生效(这一步不能忘记!!!)
4.启动jenkins服务,java -jar /Applications/Jenkins/jenkins.war –httpPort=8080
5.浏览器打开http:localhost:8080,界面跳转至解锁jenkins,会发现红色字的路径(前部分即主目录路径)就是刚刚自定义所需的路径,管理员密码即重复上面步骤,即完成修改主目录路径
2.jenkins改变主目录,原先的数据不见了,需要迁移
解决方案:(拷贝了网上的,亲测有效)
迁移的时候可以直接将jenkins主目录数据整个拷贝过去,
也可以单独拷贝jenkins主目录下的config.xml文件以及jobs、
users
、workspace、plugins四个目录
(这是主要的迁移数据)。
一般来说,手动设置好jenkins主目录路径,启动jenkins后就会自动生成
(但要确保jenkins用户有权限创建这个主目录,最好是提前手动创建并赋予jenkins启动用户的权限)
ps:jenkins卸载方法:到目录/Library/Application\ Support/Jenkins,该文件下有Uninstall.command,双击即可卸载
使用:
1).点击新建,新建一个项目
2).输入项目名,选择"构建一个*风格的软件项目"
3).进入新建的项目后,可以看到6个选项,即:状态,修改记录,工作空间,立即构建,删除Project,配置。这里主要讲配置选项
4).点击配置,General里面填项目名称和描述
5).源码管理选择git,填写Repository URL,aaa@qq.com/xxx.git(注:该地址为SSH,不可以是HTTP的!),填完发现会红色报错,因为是SSH,要配置公钥和私钥!
6).配置公钥和私钥:
6.1).生成SSH**,打开终端,输入 ssh-****** -t rsa, 公钥内容在~/.ssh/id_rsa.pub,私钥内容在~/.ssh/id_rsa
6.2).把公钥加入到git中:打开GitLab,进入用户的settings,选择SSH Keys,将公钥内容复制到Key中,自己填写一个Title
6.3).在JenKins中配置git ssh(私钥):位置Jenkins->Credentials->System->Add credentials,kind选择SSH Username with private key ,scope选择Global(Jenkins,nodes,items,all child items,etc),private key 选Enter directly,将私钥内容复制到Key中,填写username和id(可与jenkins一致),OK完成
7).源码管理git配置中Credentials选择刚刚配置好的私钥username,报错消失,ok完成
8).构建Xcode
8.1).安装相关插件,不然构建下面没有xcode选项。下载插件地址:
https://updates.jenkins-ci.org/download/plugins/
下载两个插件:token-macro.hpi和xcode-plugin.hpi,在jenkins安装插件位置:jenkins->系统管理->管理插件->高级->上传插件,先上传安装token-macro.hpi,再上传安装code-plugin.hpi,安装完后重启,即可在构建中看到xcode选项。jenkins重启:
http://localhost:8080/restart
8.2).General build settings:(ps:${JENKINS_HOME}:jenkins安装目录,${JOB_NAME}:下载项目工程目录)
Target:xxx
Clean before build:Yes
Generate Archive:Yes
Configuration:Release
Export method:xxxx(development,ad-hoc,enterprise,app-store)
.ipa filename pattern:xxx(ipa名字)
Output directory:${JENKINS_HOME}/XXXX(输出目录位置)
8.3).Code signing & OS X keychain options
Team ID:XXXX
Keychain path:${Home}/library/Keychains/login.keychain-db
Keychain password:***
8.4).Advanced Xcode build options(workspace项目)
Clean test reports:Yes
Xcode Schema File:xxx
Xcode Workspace File:${JENKINS_HOME}/job/${JOB_NAME}/XXXX
Build output directory::${JENKINS_HOME}/job/${JOB_NAME}/workspace/XXXX
9).配置完成,点击项目的立即构建!!!ok啦。。。
当然,构建还可以直接用shell脚本:
10).构建选择Execute shell,用xcodebuild打包,curl上传,具体参考我的博客:ios项目自动构建打包命令(xcodebuild)+上传(curl)
推荐阅读