一.环境说明
搭建机器:一台Mac Book Pro
开发工具:XCode V7.3.1
开发环境:OS X EI Capitan 版本 10.11.5
jenkins版:V1.647
(特别注意:我用的是V1.647,如果使用其他版本可能导致一些未知的BUG)
比如我之前用了最新的2.10版本,就导致了一个很奇葩的问题,找了很多资料都没有解决
![](https://i-blog.csdnimg.cn/blog_migrate/a56694257dae8d7c915924f159a783be.webp?x-image-process=image/format,png)
所以还是用老版本吧,比较稳定点。
二.环境搭建
1.Android adb 命令配置
关于Android整个开发环境的搭建,什么SDK的下载安装,这里我就不详细叙述了,作为一个Android开发人员这个是基本技能了。
我主要说下adb命令配置
第一步:打开终端iTerm
![](https://i-blog.csdnimg.cn/blog_migrate/da3e6dfa433f5d5a84a1e3b816c31cb2.webp?x-image-process=image/format,png)
(广告插入,想要这个工具,可以看我之前的一篇文章:iOS程序猿这些工具你值得拥有http://www.jianshu.com/p/4b7e65f2677c)
第二步:输入touch .bash_profile(创建文件)
第三步:open -e .bash_profile(打开文件)
在弹出的文件中,输入Android SDK platform-tools的路径
格式为:export PATH=${PATH}:路径地址
![](https://i-blog.csdnimg.cn/blog_migrate/d4066121537a3bb2231c684c4d2b2ab1.webp?x-image-process=image/format,png)
第四步:输入source .bash_profile
第五步:输入adb(校验是否配置成功)
![](https://i-blog.csdnimg.cn/blog_migrate/c8524fad2e47dde00aafdefcd530204d.webp?x-image-process=image/format,png)
还需要进行下面的配置,android命令才能使用
![](https://i-blog.csdnimg.cn/blog_migrate/96742b3b504c892b8409ccb07da844f5.webp?x-image-process=image/format,png)
2:配置ant命令
下载安装包,官网下载地址:
http://ant.apache.org/bindownload.cgi
![](https://i-blog.csdnimg.cn/blog_migrate/4a59e6169d907c0cd8f2c149ba3b129a.webp?x-image-process=image/format,png)
将下载到文件解压到部署目录,比如
![](https://i-blog.csdnimg.cn/blog_migrate/a757e785a1c859d42d1ec4c1fd3aa061.webp?x-image-process=image/format,png)
类似与adb命令的配置,把PATH添加到.bash_profile文件
![](https://i-blog.csdnimg.cn/blog_migrate/51a2d177aa9df0cd1113e93de7044e71.webp?x-image-process=image/format,png)
通过ant -version测试是否配置OK
3:安装jenkins
通过brew install jenkins进行安装
![](https://i-blog.csdnimg.cn/blog_migrate/15b65d5804f76ef40aeab51ba7d2d07a.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/be6e3d801c595af6aa9d6af57935e191.webp?x-image-process=image/format,png)
通过浏览器访问(终于看到小老头了,哈哈)
![](https://i-blog.csdnimg.cn/blog_migrate/ff017ffb5414934b1ebde2d6726411fb.webp?x-image-process=image/format,png)
注意:
不要通过pkg安装,可能导致比较奇葩的问题
不要通过pkg安装,可能导致比较奇葩的问题
不要通过pkg安装,可能导致比较奇葩的问题
![](https://i-blog.csdnimg.cn/blog_migrate/6676bc77723e9b61e1b47986fdd1c45a.webp?x-image-process=image/format,png)
至于为什么,我也不知道,文末我会详细叙述下那个奇葩的BUG,还请大神指导
4:jenkins环境配置
a.安装相应的插件
Git Plugin
Xcode integration(编译插件,不可少)
![](https://i-blog.csdnimg.cn/blog_migrate/9e2d8e901fce7755c1ddf92d8b3054ba.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/902ab3d6133dc21ffd78d3792070df81.webp?x-image-process=image/format,png)
b.环境变量配置
配置Android SDK路径
![](https://i-blog.csdnimg.cn/blog_migrate/5aa7252c2fd689570f3c7d595c07ddc2.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/b18a6ca698b7a81f49ddbd9f85833318.webp?x-image-process=image/format,png)
5:新建一个github的iOS项目
https://github.com/andli0626/jenkins-for-iOS
这里关于iOS开发环境的搭建,证书的配置我就不讲了,作为一名iOS开发人员这些都是基础啦,小case啦。
注意,这里面有个坑,就是项目的目录结构
![](https://i-blog.csdnimg.cn/blog_migrate/32ebf679551b05f1bd1a3080ea1ce816.webp?x-image-process=image/format,png)
如果是类似这种
![](https://i-blog.csdnimg.cn/blog_migrate/1b1371f69da2c83e94c4e41e324ca3e8.webp?x-image-process=image/format,png)
会报下面的错误
![](https://i-blog.csdnimg.cn/blog_migrate/9207c7ff4c25e3c934f40a3eb89d1b84.webp?x-image-process=image/format,png)
为什么会这样呢?我暂时也没搞明白,如果有大神知道的可以留言告知,感谢不尽!
至此,前期准备都准备完毕了
三.项目实战
1.新建一个自由风格的软件项目
2.配置git地址
![](https://i-blog.csdnimg.cn/blog_migrate/c50b24c5d4e63a199de1419e3162ad6f.webp?x-image-process=image/format,png)
我们先立即构建下,提示构建成功
![](https://i-blog.csdnimg.cn/blog_migrate/bbc64defcdb67e03556551327dcc1d61.webp?x-image-process=image/format,png)
那么构建后的项目在哪里呢?
通过系统管理->系统设置->主目录 点击高级,可以查看到
![](https://i-blog.csdnimg.cn/blog_migrate/ff9627469b454a65101b2980654a4e8a.webp?x-image-process=image/format,png)
在jenkins的workspace目录中,可以看到构建的项目
![](https://i-blog.csdnimg.cn/blog_migrate/be54c456f16702e565fb7eeb4d4270a7.webp?x-image-process=image/format,png)
3:编译配置(很关键)
上面虽然编译成功了,但是你发现根本没有看到ipa文件,所以还需要进行下面的配置:增加构建步骤
这就用到我们上面安装的Xcode插件了
![](https://i-blog.csdnimg.cn/blog_migrate/900e144551d07053d865b6f3bff0e248.webp?x-image-process=image/format,png)
Xcode插件配置
![](https://i-blog.csdnimg.cn/blog_migrate/02c5b8c9fab50e1bda38bee6c577ac3b.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/b0a9e95e09135076314ac023c1d6e77e.webp?x-image-process=image/format,png)
配置完成,点击立即构建,查看ipa所在的路径
![](https://i-blog.csdnimg.cn/blog_migrate/a01dad4ce50a5be509808ad74bf9c2a3.webp?x-image-process=image/format,png)
OK,一个简单的打包就完成了。
4.发布到蒲公英
a.帐号申请
首先得注册一个蒲公英的帐号
官方地址:
http://www.pgyer.com/apps
![](https://i-blog.csdnimg.cn/blog_migrate/24acbdd1eafb74c92e263ac615383b83.webp?x-image-process=image/format,png)
上传一个APP,得到API Key,UserKey
![](https://i-blog.csdnimg.cn/blog_migrate/aef23d199f8c7117672e678bf7b3f89d.webp?x-image-process=image/format,png)
注意:同一个用户的API Key,UserKey是固定的(后面会用到这2个参数,请记住)
b.jenkins配置
![](https://i-blog.csdnimg.cn/blog_migrate/5220d593a83cbc60b2195223d5847147.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/eabe822ce82baa79cc6e35ab0bb5b1ab.webp?x-image-process=image/format,png)
curl -F "file=@ipa所在路径" -F "uKey=用户User Key" -F "_api_key=用户API Key" http://www.pgyer.com/apiv1/app/upload
小技巧:快速获取ipa所在的路径,右击->拷贝路径->终端格式
![](https://i-blog.csdnimg.cn/blog_migrate/6d3197c3981554ef4edb80a1bc97bdf8.webp?x-image-process=image/format,png)
如果我想发布到 http://fir.im/apps 怎么弄呢?那就下一篇再讲了
官方说明文档:http://fir.im/tools
![](https://i-blog.csdnimg.cn/blog_migrate/abbe3a8319be1ff55bbc17fd817dba95.webp?x-image-process=image/format,png)
传送门:jenkins通过fir插件实现ipa的自动发包
http://www.jianshu.com/p/9543de52515a
20160705 补充 采用企业级证书打包后未加入测试设备的手机无法安装
![](https://i-blog.csdnimg.cn/blog_migrate/fb5fc52156a9a8e2821c532727f4a1e2.webp?x-image-process=image/format,png)
如果是个人证书只能测试设备安装了。
蒲公英上叫内测版
![](https://i-blog.csdnimg.cn/blog_migrate/f3f47bde82d67c21132dd9aa4a6c2c84.webp?x-image-process=image/format,png)
相对的就是企业版了
![](https://i-blog.csdnimg.cn/blog_migrate/6f27b9e82b825ef2b8ca3c78e316607d.webp?x-image-process=image/format,png)
参考资料
Jenkins+GitHub+Xcode+fir搭了一个持续集成环境
http://www.jianshu.com/p/a17167274463
Jenkins+GitHub+fir_cli 一行命令从源码到fir.im
http://www.jianshu.com/p/0515e2465c49
使用jenkins上传到蒲公英(Android)-蒲公英官方文档
http://www.pgyer.com/doc/view/jenkins
原文链接:http://www.jianshu.com/p/ed124917d6c6
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。