iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer
工具介绍
1. bundler
2. cocoapods
Command Line
比方 xcrun —find ld,用于定位ld工具的位置。xcrun git —version,则是直接运行git —version命令。
- http://youandthegang.com/2015/continuous-integration-delivery-with-jenkins/
- http://segmentfault.com/a/1190000002423661
- <Pro iOS Continuous Integration>
Jenkins
1. 安装启动
-jar jenkins.war" 启动jenkins,也能够通过 —httpPort 和 —httpListenAddress 指定port和设定IP来启动。
2. Jenkins基本设置
启用安全以下选择,“Jenkins专实用户数据库”。勾选同意用户能够注冊。然后在“授权策略”中选择“不论什么用户能够做不论什么事(没有不论什么限制)”。当然,也能够使用LDAP身份认证机制,直接使用外部统一的身份机制来做认证。
3. 设置git
生成SSH keys的过程详细请參考:https://help.github.com/articles/generating-ssh-keys/,对git比較熟悉的话。这个过程应该不会陌生。记得不要忘记把public
key加入 repo的訪问权限中,不管是github/gitlab/bitbucket都是类似的。运行以下两行命令,直接到输入框里粘贴就可以。
4. Jenkins Job设置
5. fastlane
在查看fastlane之后,我发现fastlane的确很强大。能够大大简化我们的工作。尤其适合个人开发人员,可是这个还是有一定学习成本的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
- delivery:用于上传应用的二进制代码,应用截屏和原数据到 App Store
- snapshot:能够自己主动化iOS应用在每一个设备上的本地化截屏过程
- frameit:用于在应用截屏外加入设备的边框
- PEM:能够自己主动化生成和更新应用推送通知描写叙述文件
- sigh:能够生成并下载开发人员的应用商店配置文件
- product:能够使用命令行在iTunes Connect中创建iOS应用以及Developer Portal
- cert:能够自己主动创建并维护iOS的签名证书
- codes:使用命令行来生成应用的优惠码
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
“bundle install” 或者 “pod update”命令,然后把这些改动push到origin上就可以。
6. 实现不同类型的应用
beta/alpha版本号实现的方式研究,这部分在<Pro Continuous Integration>有具体说明,在”Multiple Versions of the Application”章节内。
參考资料:
- <Pro iOS Continuous Integration>
- https://medium.com/ribot-labs/continuous-integration-deployment-for-ios-projects-7358b72ca2e9 (翻译:http://www.jianshu.com/p/9ae446d76271),对于CI的各个方面覆盖很全面,能够參考这个拓展CI的使用
- http://youandthegang.com/2015/continuous-integration-delivery-with-jenkins/
- http://9elements.com/io/index.php/continuous-integration-of-ios-projects-using-jenkins-cocoapods-and-kiwi/
- jenkins + 蒲公英: http://answerhuang.duapp.com/index.php/2015/04/19/jenkins/
- http://williamzang.com/blog/2014/07/23/shi-yong-jenkins-plus-calabash-plus-cocoapodsda-jian-ioschi-xu-ji-cheng-huan-jing/
- https://github.com/artsy/eigen
- http://www.objc.io/issues/6-build-tools/travis-ci/
- dysm分析工具:http://answerhuang.duapp.com/index.php/2014/07/06/dsym_tool/
- <Xcode continuous integration guide>
- http://macminicolo.net/dayone
- http://savvyapps.com/blog/continuous-integration-ios-jenkins/
其它工具
iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer的更多相关文章
- 一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP
什么是持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来 ...
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...
- 使用 Fastlane 实现 IOS 持续集成
简介 持续集成是个“一次配置长期受益”的工作.但很多小公司都没有.以前在做Windows开发配置感觉简单一些,这次配置iOS的,感觉步骤还挺多.整理出来,分享给大家,不正确的地方请及时指正. 本文主要 ...
- 使用 fastlane 实现 iOS 持续集成(转)
http://www.cocoachina.com/ios/20150916/13433.html 简介 持续集成是个“一次配置长期受益”的工作.但很多小公司都没有.以前在做Windows开发配置感觉 ...
- iOS 持续集成
iOS 持续集成系列 - 开篇 前言 iOS 开发在经过这几年的野蛮生长之后,慢慢地趋于稳定.无论开发语言是 Objective-C 还是 Swift,工程类型是 Hybird 还是原生,开发思想是 ...
- 现有iOS项目集成React Native过程记录
在<Mac系统下React Native环境搭建>配置了RN的开发环境,然后,本文记录在现有iOS项目集成React Native的过程,官方推荐使用Cocoapods,项目一开始也是使用 ...
- CI Weekly #21 | iOS 持续集成快速入门指南
搭建 iOS 持续集成环境要多久?每个 iOSer 都有不同的答案.这次我们整理了 flow.ci 的 iOS 持续集成的相关文档和最佳实践,希望帮你更快地完成构建.更新文档见: flow.ci iO ...
- 视频云SDK iOS持续集成项目实践
1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...
- 李洪强iOS之集成极光推送三iOS集成指南
李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...
随机推荐
- Linux软件管理器(如何使用软件管理器来管理软件)
我们的Linux系统大部分都是某个Linux厂商的系统,所以这些厂商可以编译好一些软件来提供用户下载,用户下载完了之后就可以直接安装,从而省去了编译源码及其过程中的各种问题.这时我们就可以使用相应的软 ...
- ImageNet Classification with Deep Convolutional Neural Network(转)
这篇论文主要讲了CNN的很多技巧,参考这位博主的笔记:http://blog.csdn.net/whiteinblue/article/details/43202399 https://blog.ac ...
- Butter Knife:一个安卓视图注入框架
Butter Knife:一个安卓视图注入框架 2014年5月8日 星期四 14:52 官网: http://jakewharton.github.io/butterknife/ GitHub地址: ...
- MySQL-高并发优化
一.数据库结构的设计 1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率. 2.能够用数字类型的字段尽量选择数字类型而不用字符串类型的 ...
- FreeMarker使用之比较if
1. =或者==:判断两个值是否相等. 2. !=:判断两个值是否不等. 3. >或者gt:判断左边值是否大于右边值 4. >=或者gte:判断左边值是否大于等于右边值 5. <或者 ...
- 通过EPROCESS获取进程名
上一篇写自我保护时用到了,主要是不同版本的位置不同.找了一下,发现XP和win7的情况分别如下. WIN7 lkd> dt nt!_EPROCESS +0x000 Pcb : _KPROCESS ...
- 【PAT】1006. 换个格式输出整数 (15)
1006. 换个格式输出整数 (15) 让我们用字母B来表示“百”.字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为 ...
- T1,T2,T3 三个线程顺序执行
T1,T2,T3 三个线程顺序执行 现在有 T1.T2.T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?(T1->T2->T3) 这个线程问题通常会 ...
- shell-grep命令详解(转)
(转自http://blog.csdn.net/onlyou930/article/details/6582409) 用‘grep’搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep ...
- ThinkPHP3.2.3 PHPExcel读取excel插入数据库
版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255 ...