使用

是否厌倦了手动创建和维护您的iOS应用程序的推送通知配置文件? 是否厌倦了为您的服务器生成一个pem文件?

fastlane做所有这些,只要简单一个fastlane pem命令。

fastlane pem

+------------------+------------------------+
|          Summary for PEM 2.41.0           |
+------------------+------------------------+
| development      | false                  |
| generate_p12     | true                   |
| force            | false                  |
| save_private_key | true                   |
| app_identifier   | com.tyrad.fastlaneProj |
| username         | qianshangjia@126.com   |
| team_id          | ZAKS37HHGG             |
| output_path      | .                      |
+------------------+------------------------+

[10:24:58]: Starting login with user 'xxx@126.com'
[10:25:02]: Successfully logged in
[10:25:03]: Creating a new push certificate for app 'com.tyrad.fastlaneProj'.
[10:25:06]: Private key: /Users/admin/Desktop/snapshot-fastlane/fastlaneProj/production_com.tyrad.fastlaneProj.pkey
[10:25:06]: p12 certificate: /Users/admin/Desktop/snapshot-fastlane/fastlaneProj/production_com.tyrad.fastlaneProj.p12
[10:25:06]: PEM: /Users/admin/Desktop/snapshot-fastlane/fastlaneProj/production_com.tyrad.fastlaneProj.pem

做了哪些工作

  • 创建新的签名请求(signing request)
  • 创建新的推送证书( push certification)
  • 下载这个证书(certificate)
  • 在当前工作目录创建新的 .pem 文件,你可以上传到你的服务器

pem不会revoke已经存在的证书,也不会下载已经存在的证书,因为私钥仅在创建的机器上可用。

实用命令

如果你已经有一个可用的推送证书(certificate),而且有效期至少还有30天以上,pem就不会创建新的证书。如果你想要创建新的,使用force

fastlane pem --force

还可传参数,如:

fastlane pem -a com.krausefx.app -u username

生成开发证书:

fastlane pem --development

给p12文件设置密码:

fastlane pem -p "MyPass"

可以指定输出名字:

fastlane pem -o my.pem

列出可用命令选项:

fastlane pem --help

注意事项

pem命令生成的p12文件可以没有密码或者空字符串当密码。这样尽管生成的文件是有效的,但mac的Keychain Access不会允许你打开没指定密码的p12。

2017062679494error.png

这时候,可以用OpenSSL验证文件:

openssl pkcs12 -info -in my.p12

如果要用keychain中的p12,比如说推送测试软件KnuffNWPusher,您可以使用openssl将p12导出到pem并返回到p12(设置密码)。

% openssl pkcs12 -in my.p12 -out my.pem
Enter Import Password:
  <hit enter: the p12 has no password>
MAC verified OK
Enter PEM pass phrase:
  <enter a temporary password to encrypt the pem file>
  
% openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
Enter pass phrase for temp.pem:
  <enter the temporary password to decrypt the pem file>

Enter Export Password:
  <enter a password for encrypting the new p12 file>

参考链接

https://github.com/fastlane/fastlane/tree/master/pem