iOS持续部署平台(一):SHENZHEN
来源:互联网 发布:node.js实战 编辑:程序博客网 时间:2024/05/22 16:46
原文发布在了自己新建的网站:www.lujiji.com
iOS持续部署平台(一):SHENZHEN
前言:
项目进入测试阶段后,打包和分发会比较频繁,如果总是开发人员手动来处理不仅耽误时间,而且影响自己解决一些问题的思路。特别是当分发的渠道不同时,或者是涉及到不同描述文件,再就是截图的提交,证书的申请……总之都跟码砖没啥关系,耽误事儿。
这时我们就很有必要构建一个自己的持续部署平台了,简单的说就是一键完成各冲渠道的打包分发。可能有人会自己写脚本,用到过xcodebuild,xctool,xcrun……当然也有不折腾的懒人,所以我在此介绍的下fastlane,一个工具集,来快速的构建持续部署平台。
不过在此之前先介绍下AFNetworking的作者@matt写的一个工具打包和分发SHENZHEN。
SHENZHEN or ipa:
安装shenzhen之后,会引入ipa命令,
$ gem install shenzhen
常用的命令有:
$ ipa build
$ ipa distribute:platform
$ ipa info xxx.ipa
build生成一个完成打包,生成ipa文件;distribute完成分发,支持的平台有:
rivierabuild,hockey,crashlytics,deploygate,firim,itunesconnect,pgyer,ftp,s3,testfairy
具体到每个平台都有参数都会不同,各位可以去SHENZHEN查看。
比如要发布到crashlytics为例:
$ ipa build
$ ipa distribute:crashlytics -c /path/to/Crashlytics.framework -a API_TOKEN -s BUILD_SECRET
最后info可以查看ipa里描述文件的信息,效果如下:
+—————————–+———————————————————-+
| ApplicationIdentifierPrefix | DJ73OPSO53 |
| CreationDate | 2014-03-26T02:53:00+00:00 |
| Entitlements | application-identifier: DJ73OPSO53.com.nomad.shenzhen |
| | aps-environment: production |
| | get-task-allow: false |
| | keychain-access-groups: [“DJ73OPSO53.*”] |
| CreationDate | 2017-03-26T02:53:00+00:00 |
| Name | Shenzhen |
| TeamIdentifier | S6ZYP4L6TY |
| TimeToLive | 172 |
| UUID | P7602NR3-4D34-441N-B6C9-R79395PN1OO3 |
| Version | 1 |
+—————————–+———————————————————-+
具体的使用很简单,其主页上都有,我就讲下2个坑。
Warning:
- build会以Xcode中的provisioning profile为准打包。这个还是不太好,所以实际过程中我们需要这样使用12
$ ipa build --embed xxxx.mobileprovision --identity xxxx
$ ipa distribute:crashlytics -c /path/to/Crashlytics.framework -a API_TOKEN -s BUILD_SECRET
这有个bug,也许是个别问题。如果省略–identity xxxx,–embed命令则会被忽略,生成的ipa证书依然是Xcode中设置的。
- 当你加上描述文件等参数时如果出现这个问题
“Warning: –resource-rules has been deprecated in Mac OS X >= 10.10”
在Xcode的build settings里找到Code Signing Resource Rules Path,加上 $(SDKROOT)/ResourceRules.plist
- iOS持续部署平台(一):SHENZHEN
- 构建iOS持续集成平台(三)——CI服务器与自动化部署
- 构建iOS持续集成平台(三)——CI服务器与自动化部署
- 构建iOS持续集成平台(三)——CI服务器与自动化部署
- 构建iOS持续集成平台(一)——自动化构建和依赖管理
- 构建iOS持续集成平台(一)——自动化构建和依赖管理
- 构建iOS持续集成平台(一)——自动化构建和依赖管理
- 持续集成+持续部署(一)ant+avn实现在tomcat6下一键部署
- 构建iOS持续集成平台
- Vmware虚拟化平台部署(一)
- iOS 面试题总结 (一)持续更新
- Jenkins构建iOS持续集成环境(一)
- iOS百度地图后台持续定位(一)
- iOS平台Socket编程实践(一)
- 典型微软BI平台部署详解(一)
- (一)iOS平台简介
- iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer
- 持续集成(一)
- 两个Activity之间传递参数
- github学习笔记
- c/C++程序内存分配方式
- OC _字典的一些属性,和一些重要用法
- 背包问题
- iOS持续部署平台(一):SHENZHEN
- Swing之paint与paintComponent的区别
- [线段树] poj2823 Sliding Window
- 【转】[C#List的Sort()、Find()、FindAll()、Exist()的使用方法举例
- setNilValueForKey:could not set nil as the value for the key distance.解决方案
- HDU 1059 Dividing(多重背包)
- 解压tar.xz文件
- 函数
- hdoj-1197-Specialized Four-Digit Numbers