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命令,

1
$ gem install shenzhen

常用的命令有:

1
2
3
$ ipa build
$ ipa distribute:platform
$ ipa info xxx.ipa

build生成一个完成打包,生成ipa文件;distribute完成分发,支持的平台有:
rivierabuild,hockey,crashlytics,deploygate,firim,itunesconnect,pgyer,ftp,s3,testfairy

具体到每个平台都有参数都会不同,各位可以去SHENZHEN查看。

比如要发布到crashlytics为例:

1
2
$ 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:

  1. build会以Xcode中的provisioning profile为准打包。这个还是不太好,所以实际过程中我们需要这样使用
    1
    2
    $ 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中设置的。

  2. 当你加上描述文件等参数时如果出现这个问题
    “Warning: –resource-rules has been deprecated in Mac OS X >= 10.10”
    在Xcode的build settings里找到Code Signing Resource Rules Path,加上 $(SDKROOT)/ResourceRules.plist
0 0
原创粉丝点击