iOS开发技巧首页推荐iOS Developer

Jenkins + SVN实现iOS项目持续集成(Continu

2017-12-01  本文已影响93人  永不止步123

随着项目的不断推进,参与的人员越来越多,内容越来越复杂,构建项目本身可能就变成了复杂又耗时的工作。持续集成(Continuous Integration,简称CI),作为一种团队开发实践方法,很好的解决这些问题。它可以让开发团队专注于业务需求,让测试团队更快的构建项目检测问题,加快项目进度。

Jenkins作为一种持续集成的方案,由于其丰富的插件和较高的可控性,备受大家喜爱。

安装Jenkins

下载JDK

下载JDK

下载Jenkins

下载Jenkins

配置Jenkins

  1. 打开http://localhost:8080会出现重设初始密码的界面。根据界面中的路径提示去相应文件中取出密码。
  2. 创建一个用户
  3. 安装插件Xcode integrationKeychains and Provisioning Profiles Management
    打开Jenkins->系统管理->插件管理->可选插件,安装这两个插件。
    安装插件

4.配置Keychains and Provisioning Profiles Management

Jenkins->系统管理->Keychains and Provisioning Profiles Management。

配置证书相关
  1. 配置Xcode integration

Jenkins->系统管理->系统设置->Xcode Builder

Xcode Builder设置
  1. 新建项目
新建工程 填写SVN配置

如果你的Xcode版本低于9.0那么请继续向下看😄
增加构建步骤->Xcode

增加构建步骤 Advanced Xcode build options

Xcode Schema File填写iOS项目中工程名
Xcode Workspace File填写iOS workspace文件的绝对路径

这时会有进度条显示,构建进度,点击进入之后可以查看Log


构建进度

构建后的操作

构建完成后,可以选择将ipa包上传到自己的服务器,也可以用fir或者蒲公英等第三方服务。

遇到的问题

导出ipa失败
error: exportArchive: "Your.app" requires a provisioning profile with the Push Notifications feature.
Error Domain=IDEProvisioningErrorDomain Code=9 ""Your.app" requires a provisioning profile with the Push Notifications feature." UserInfo={NSLocalizedDescription="Your.app" requires a provisioning profile with the Push Notifications feature., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
** EXPORT FAILED **

最后错误提示,EXPORT FAILED,推断导出ipa包时出的错。根据最后提示
Add a profile to the "provisioningProfiles" dictionary in your Export Options property list
google一下,发现Xcode 9.0不允许访问钥匙串里的内容。

解决方案: 在构建中添加Execute Shell替代Xcode Builder

选择Execute Shell

使用脚本替代插件(插件本质是通过我们的配置生成打包脚本并执行)。

脚本内容
xcodebuild -archivePath "/Users/你的用户/.jenkins/workspace/你的Jenkin构建项目名/output/debug/name.xcarchive" -workspace name.xcworkspace -sdk iphoneos -scheme "schemename" -configuration "Release" archive
xcodebuild -exportArchive -archivePath "/Users/你的用户/.jenkins/workspace/你的Jenkin构建项目名/output/debug/name.xcarchive" -exportPath "/Users/你的用户/.jenkins/workspace/你的Jenkin构建项目名/ipa/" -exportOptionsPlist '/Users/chaos/.jenkins/workspace/你的Jenkin构建项目名/ipa/ExportOptions.plist' -allowProvisioningUpdates

按照你的实际项目情况替换脚本中的内容
name.xcarchive =>TargetName.xcarchive
name.xcworkspace => iOS 项目 workspace 名字
schemename => scheme manage中的名字

其中ExportOptions.plist ,直接使用Xcode导出iPA同文件夹中的同名文件就行。

ExportOptions.plist文件位置

ExportOptions.plist文件请放在Jinkens的workspace,构建项目文件夹下。
脚本中ExportOptions.plist路径可以自定义。


ExprotOptions.plist位置

扩展

最后

感谢阅读,如果对大家有帮助,请在github上follow和star,本文发布在逆流的简书博客,转载请注明出处

上一篇下一篇

猜你喜欢

热点阅读