Jenkins打包cocoapads项目

来源:互联网 发布:数据透视图 转化妆 编辑:程序博客网 时间:2024/06/05 09:12
公司测试组之前都是通过Jenkins打包做集成测试的,包含web、wap、大后台、服务端、android等,这些几乎都是基于Java,所以都放在Linux服务器上一直没有问题。而ios打包一直是个例外,测试组研究了很长时间一直没搞定,后来为了方便测试组统一管理,我花了半天时间研究了下,终于搞明白了,其中走了不少弯路,现在把这些写下来,一是让大家可以借鉴,二也是备忘。

其实主要的原因是iOS无法在linux上打包,因为jenkin的xcode插件需要调用xcode,所以网上的教程也是基于Mac服务器的。如果还在linux上倒腾的真的可以歇歇了。

我的项目使用了cocoapods,大部分时间都花在解决链接库的问题上,下面一一说明吧。

安装Jenkins特别简单
$brew install jenkins
一句命令就搞定了,它也会帮你配置好,安装完了有提示怎么启动,如果只是自己玩玩的话,直接
$jenkins
这个不是我今天写的目的,就不多说了,关于jenkins安装教程太多了,不说了。

配置Jenkins步骤
1、新建free样式的项目“善林财富”
      1)勾选丢弃旧的构建
      2)保持构建天数3,保持构建的最大个数30

2、源代码管理
     我选择的是Subversion,即SVN,这里填上项目所在SVN的地址,若报错说明没有授权就是要填用户和密码,在错误提示的地方点进去就可以填了,填完就不报错了。

3、新增Shell脚本
     因为我的项目用到了cocoa pods,所以在Jenkins编译项目前需要更新下pods,这里的脚本就是更新pods用的。
     1)增加构建步骤-》Execute Shell
     2)填入以下脚本(xieqiang是你的用户名称,Shanlincaifu是你的项目名称)
#!/bin/bash
cd /Users/xieqiang/.jenkins/jobs/Shanlincaifu/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/shanlincaifu/cer/Shanlincaifu_Development.mobileprovision
     4)配置Advanced Xcode build options
          i.Xcode Schema File 编译多个项目的时候,特别像cocopods项目会有多个Schema,这里指定主的,我这里填写的ShanLinCaiFu,如果你不知道项目里面有多少个Schema,可以用xcodebuild -list -workspace ShanLinCaiFu.xcworkspace查看下。这里有个区别,如果你是项目而不是cocoapods这样多个项目组成的工程,用xcodebuild -list -project ShanLinCaiFu.xcodeproj。
          ii.SYMROOT指定build目录/Users/xieqiang/.jenkins/jobs/Shanlincaifu/workspace/build
          iii.Custom xcodebuild arguments填写CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist,貌似不写这个签名会失败,这个网上搜的,说是xcodebuild的一个BUG,也有人在Xcode项目文件里面设置的,我在此处做了设置。
          iv.Xcode Workspace File填写ShanLinCaiFu,因为我用到cocopods,所以在这里填。没用到可以在    Xcode Project File里填。

上面这些配置完了就可以build项目了,一般都会成功,有问题的话参照jenkins的日志,不得不说jenkins的日志打印的太详细了,一目了然。
0 0
原创粉丝点击