由于最近需要开发的工程有多个环境, 又是企业式发布 app 到 fir 上, 每次打一个包实在是太麻烦了, 而且需要不停的更换证书和描述文件, 所以决定把打包操作用 shell 执行。记录一下操作过程。
我目前的 app 是有三个环境的(后来又多了一个…), 一个是开发环境, 另一个是 UAT 环境, 剩下的一个就是生产环境了。由于开发环境和生产环境我们可以用 Debug 和 Release 来区分, 所以我们只要多配置一个 UAT 环境的就可以了。
首先先建立一个 configurations 我这里叫 WM_UAT
然后把证书配好
接下来去配置不同的 bundle id, bundle version 和 bundle display name 这个可以在 build setting 里面加入配置 然后在工程的 plist 文件中去取, 首先在 build setting 中增加配置
然后加入 bundle version 和 bundle display name
对于 bundle id 的配置在这里
最后在 plist 中读取相应的值, 这样就做到了不同的环境对应不同的配置
对于程序中请求 url 可以通过 bundle id 来区分, 或者用 host 区分的也可以, 这个看项目。
工程配置完毕了开始写 shell 我这里是只打了 UAT 和 生产的包, 根据包的不同要有不同的导出配置文件
这个配置文件的内容可以先用 Xcode 的 archive 打一个包, 然后 export 然后把导出文件夹中的 ExportOptions.plist 复制过来, 改一改 bundle id 和 描述文件名称就可以了, 这两项位于 ExportOptions.plist 的 provisioningProfiles 字段中
然后安装 fir-cli 这个安装命令倒是很简单, 只要执行gem install fir-cli
就可以了。不过我安装这个的时候遇到了点问题, 他管我要了两个目录的权限, 其中一个是/usr/bin
, 我手贱的设置了更改了/usr/bin
的权限之后发现命令行用不了了!!提示是这样的
1 |
|
网上有说开启root账户的然后执行以下命令的
1 |
|
反正我试过了, 都不行。 后来我试了这个方法终于把命令行登进去了
Mac Terminal Error : Could not determine audit condition When I launched my terminal today, was welcomed with this error :- login: PAM Error (line 396): System error login: Could not determine audit condition [Process completed] It is most probably because I was playing with my /usr/bin permissions the other day. The fix is easy. Just delete the “/usr/bin/login” dir. But how do I delete it, if I can’t access the “Terminal” altogether ? Come on - You can access any folder using the “Finder”.
- Open “Finder”
- Open “Go To Folder”
- Type “/usr/bin/login”
- Delete it.
开搞之前记得先备份…
最后, archive.sh的代码
1 |
|