公司测试组之前都是通过Jenkins打包做集成测试的,包含web、wap、大后台、服务端、android等,这些几乎都是基于Java,所以都放在Linux服务器上一直没有问题。而ios打包一直是个例外,测试组研究了很长时间一直没搞定,后来为了方便测试组统一管理,我花了半天时间研究了下,终于搞明白了,其中走了不少弯路,现在把这些写下来,一是让大家可以借鉴,二也是备忘。
其实主要的原因是iOS无法在linux上打包,因为jenkin的xcode插件需要调用xcode,所以网上的教程也是基于Mac服务器的。如果还在linux上倒腾的真的可以歇歇了。
我的项目使用了cocoapods,大部分时间都花在解决链接库的问题上,下面一一说明吧。
安装Jenkins特别简单
$brew install jenkins
一句命令就搞定了,它也会帮你配置好,安装完了有提示怎么启动,如果只是自己玩玩的话,直接
$jenkins
这个不是我今天写的目的,就不多说了,关于jenkins安装教程太多了,不说了。
配置Jenkins步骤
1、新建free样式的项目“XXXX”
1)勾选丢弃旧的构建
2)保持构建天数3,保持构建的最大个数30
2、源代码管理
我选择的是Subversion,即SVN,这里填上项目所在SVN的地址,若报错说明没有授权就是要填用户和密码,在错误提示的地方点进去就可以填了,填完就不报错了。
3、新增Shell脚本
因为我的项目用到了cocoa pods,所以在Jenkins编译项目前需要更新下pods,这里的脚本就是更新pods用的。
1)增加构建步骤-》Execute Shell
2)填入以下脚本(xieqiang是你的用户名称,Test是你的项目名称)
#!/bin/bash
cd /Users/xieqiang/.jenkins/jobs/Test/workspace
pod update --verbose --no-repo-update
3)由于Jenkins是按照你配置的顺序执行的,而我们Shell脚本要放在SVN下载之后,源代码编译之前执行,所以要把Shell脚本拉到Xcode之前(如果你先加了Xcode构建的话)
4、新增xocde构建
1)增加构建步骤-》xcode
2)配置General build settings
i.target可以不用写,如果有多个编译项目的话,像我这里就是。
ii.Clean before build?Yes
iii.勾选Pack application and build .ipa?
iv..ipa filename pattern随便写个名字
v.Output directory写一个最终生成的ipa文件存放目录
3)配置Code signing & OS X keychain options
i.Code Signing Identity这个填写的签名,可以到这里找xocde->Build Settings->Code Signing->Code Signing Identity,如果这些都没有,要做真机调试那就麻烦了,还是去申请个证书和开发许可证吧。
ii.Embedded Profile许可证书放的位置,如/Users/xieqiang/Test/cer/Test_Development.mobileprovision
4)配置Advanced Xcode build options
i.Xcode Schema File 编译多个项目的时候,特别像cocopods项目会有多个Schema,这里指定主的,我这里填写的Test,如果你不知道项目里面有多少个Schema,可以用xcodebuild -list -workspace Test.xcworkspace查看下。这里有个区别,如果你是项目而不是cocoapods这样多个项目组成的工程,用xcodebuild -list -project Test.xcodeproj。
ii.SYMROOT指定build目录/Users/xieqiang/.jenkins/jobs/Test/workspace/build
iii.Custom xcodebuild arguments填写CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist,貌似不写这个签名会失败,这个网上搜的,说是xcodebuild的一个BUG,也有人在Xcode项目文件里面设置的,我在此处做了设置。
iv.Xcode Workspace File填写Test,因为我用到cocopods,所以在这里填。没用到可以在 Xcode Project File里填。
上面这些配置完了就可以build项目了,一般都会成功,有问题的话参照jenkins的日志,不得不说jenkins的日志打印的太详细了,一目了然。
Jenkins打包cocoapads项目
最新推荐文章于 2022-09-28 13:36:06 发布