目录:
一、说明
二、环境信息
三、搭建步骤
1、配置apple证书
1)创建Certificate Signing Request
2)创建证书
3)导入证书
4)下载profile
2、安装Cocoapods
1)更换RubyGems源
2)安装cocoapods
3、Jenkins
1)安装Jenkins
2)安装Jenkins插件
3)环境变量
4)配置证书
5)任务配置
a、证书选择
b、依赖包更新
c、Xcode编译
d、Xcode打包
四、遇到问题
五、参考资料
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、说明
该环境的搭建主要是为实现iOS app的自动化打包,无需人工参与。在该环境基础上,可集成SonarQube代码质量检测、单元测试等。
产出物:ipa
本文重点在于iOS相关配置说明,不对基础环境进行介绍。
二、环境信息
系统:Mac OS X 10.10.5
Xcode:7.2
Ruby:2.2.1
RubyGems: 2.4.8
JDK:1.7.0_79
Jenkins:1.636
Cocoapods:0.37.2
三、搭建步骤
1、配置apple证书
1)创建Certificate Signing Request
通过Mac中的“钥匙串访问”创建Certificate Signing Request:
保存.certSigningRequest 文件。
2)创建证书
登录Apple开发者网站,创建证书(期间需要上传上一步生成的.certSigningRequest 文件):
3)导入证书
下载上一步生成的证书到Mac中,双机证书,证书打开时会启动“钥匙串访问”工具:
4)下载profile
打开Xcode——>Preferences...,登录开发者账号,选中相应Team,View Details...:
点击相应签名后面的“Reset”按钮,将对应的Profile下载到本地(下载完只会Reset按钮将消失,如下图):
2、安装Cocoapods
1)更换RubyGems源
$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
查看是否更换成功:
$ gem sources -l
2)安装cocoapods
由于项目需求,本次搭建cocoapods使用0.37.2版本:
$ sudo gem install cocoapods -v 0.37.2 $ pod setup
setup过程会非常缓慢,可通过以下命令查看是否有进度(文件大小是否增长):
$ cd ~/.cocoapods/repos $ du -sh *
3、Jenkins
1)安装Jenkins
使用 homebrew 安装 Jenkins:
$ brew install jenkins
然后链接 launchd 配置文件:
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
修改完后,在终端执行:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
即可启动 Jenkins。
接着用浏览器访问 http://localhost:8080(默认配置),就可以看到 Jenkins 的 web 界面了。
2)安装Jenkins插件
- Git plugin(Git集成,拉取代码)
- Xcode integation(Xcode集成,编译打包)
- Keychains and Provisioning Profiles Management(证书集成)
3)环境变量
系统设置——>全局属性,勾选Environment variables,新增键值对,配置ruby路径:
4)配置证书
系统管理——>Keychains and Provisioning Profiles Management,分别上传~/Library/Keychains/login.keychain,~/Library/MobileDevice/Provisioning Profiles/前面下载到本地的对应profile文件,
并填写证书名称(在钥匙串访问中右击证书“显示简介”,把常用名称复制下来):
5)任务配置
新建一个自由风格的Jenkins任务,配置Git等项。继而进行以下配置:
a、证书选择
选中Keychain and Code Signing Identities,选择相应的keychain(其它项保存后会自动更新),如下图;
选中Mobile Provisioning Profiles,选择想过要的Profile(其它项保存后会自动更新),如下图
b、依赖包更新
此步骤不通过Cocoapods插件实现,直接通过命令处理。增加构建步骤——Execute shell,添加以下代码:
export LC_ALL="en_US.UTF-8" cd ${WORKSPACE}/xxx/ pod install --verbose --no-repo-update pod update --verbose --no-repo-update
c、Xcode编译
增加构建步骤——Xcode,如下配置:
Configuration可选择Debug或Release(其中ipa打包不选中,后续通过命令行实现),
配置证书和keychain,
高级选型,注意通过Cocoapods依赖必须指定Workspace File文件,
d、Xcode打包
此步骤不通过Xcode插件实现,直接通过命令处理。增加构建步骤——Execute shell,添加以下代码(其中${BUILD_ID}为本次构建ID):
rm -fr ${WORKSPACE}/build/*ipa xcrun -sdk iphoneos PackageApplication -v ${WORKSPACE}/build/Release-iphoneos/xxx.app -o ${WORKSPACE}/build/xxx-${BUILD_ID}.ipa
四、遇到问题
1、直接拉取代码之后,命令行找不到scheme问题处理
详见:http://sailqi.iteye.com/admin/blogs/2283188
2、使用Xcode插件打包失败
Xcode插件选中ipa打包之后,会自动把sign参数加上(暂不知道如何去掉),导致失败,通过直接用命令行打包解决该问题。
五、参考资料
如何在Mac OS X上安装 Ruby运行环境:http://www.cnblogs.com/daguo/p/4097263.html
最新版 CocoaPods 的安装流程:http://www.tuicool.com/articles/7VvuAr3
Cocoapods降低版本及卸载:http://www.meetrue.com/archives/133
在Mac mini上架设Jenkins服务器来运行iOS测试:http://linjunpop.logdown.com/posts/162202-set-up-jenkins-server-on-the-mac-mini-to-run-ios-tests
Jenkins整合XCode详解:http://www.pluto-y.com/jenkins-xcode-configuration/
一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP:http://www.jianshu.com/p/c69deb29720d
Keychains and Provisioning Profiles Plugin官方配置文档:https://wiki.jenkins-ci.org/display/JENKINS/Keychains+and+Provisioning+Profiles+Plugin
相关推荐
每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。只要是开发就有分工,哪怕是自己一个写也要分成多个模块...
根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包。而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品、运营、测试等人员)通过手机扫描...
通过《使用Jenkins搭建iOS/Android持续集成打包平台》和《关于持续集成打包平台的Jenkins配置和构建脚本实现细节》两篇文章,我们已经在原理概念和实践操作两个层面掌握了如何搭建一个完整的持续集成打包平台。...
大致的流程是使用Jenkins来进行持续构建,执行OCLint来进行代码分析,然后将OCLint生成的分析报告传给SonarCube来对项目代码进行持续的分析。对于项目构建可以采取Git提交触发或者是定时任务的方式。这里面的主要...
利用 Travis-CI 让你在 GitHub 上的 CocoaPods 库持续构建 iOS 利用 NEHotspotHelper 获取 WiFi 列表 十分钟开发一款 iOS 表情包 App iOS 为 App 添加 3D Touch 快捷菜单 OS X 下统计项目代码行数 iOS 获取当前 WiFi...
使用TensorFlow搭建智能开发系统,自动生成App UI代码 android客户端Walle框架演进与实践之路 反作弊技术架构与设计 共享代码衍生多款应用的定制框架及经验分享 混合应用平台构建实战 在前端服务化上的实践与探索 ...
目前,OpenCV由非盈利组织OpenCV.org维护,并得到了全球开发者、研究机构以及企业的持续贡献和支持。 主要特点 跨平台:OpenCV支持多种操作系统,包括但不限于Windows、Linux、macOS、Android和iOS,确保代码能够...
熟悉安卓和IOS系统框架和特性等; 2、熟悉Python等脚本语言使用经验,熟悉常见的web(selenium)、app(appium)自动化开发框架; 3、熟悉持续集成工具如jenkins; 4、熟悉接口测试,包括单接口测试和业务流接口测试; 5...
用Adaboost算法实现人脸图像的提取分割,并基于Keras搭建 OpenCV(Open Source Computer Vision Library)是一款开源的计算机视觉库,专门为图像和视频处理任务设计,广泛应用于学术研究、工业应用以及个人项目中。...