在Mac或者PC上为iOS应用签名

iOS和Android应用都需要‘签名’。理念和普通的签名是一样的,用来证明你授权了并有权限来做这些。平台之间的签名工作有些不同。
iOS需要一个.p12文件,这个文件是一个key组成和一个开发或者分发证书组成的。对于.p12文件需要创建一个配置文件。.p12文件的目的是识别你是一个iOS开发人员,配置文件用于识别应用,服务和允许安装此应用的设备。准备好这些东西还是需要点工作流的,如果一步一步遵循这个引导来做的话不会有什么问题。
如果你有Mac的话,你可以使用XCode来自动完成其中一些步骤,但是我会一步一步的讲解这样在你没有Mac的情况下你可以备用方法了。
开始之前你得报名iOS Developer Program

在Mac上签名iOS应用

如果你有Mac的话,按照这些步骤,如果没有,跳过此部分去阅读在Windows上签名iOS应用。在开始之前先确定你安装好了XCode
生成一个证书签名请求

  • 打开Keychain Access
  • Keychain Access > Preferences:

Preference

  • Certificates标签页然后确保所有选项都关闭了
  • 现在去Keychain Access > Certificates Assistant > Request a Certificate From a Certificate Authority
  • 填写弹出框,选择Saved to diskLet me specify key pair information

    Assistant

点击继续然后选择一个位置将文件存放到本机。下一个屏幕中选择2048 bitsRSA
Assistant

证书签名请求现在就会保存到你指定的文件夹中,你应该注意到Keychain Access中会生成一个公钥和私钥对。
Assistant

制作证书

要完成后续的步骤的话需要登录到Apple Member Center然后去Certificates,Identifiers & Profiles部分:
Apple Member Center

  • 选择iOS Apps下面的Certificates,点击右上的 + 按钮:
    Certificates

接下来,选择需要生成的证书类型。如果你想要给测试应用生成证书那么选择iOS App Development,如果是应用商店的发行版的话,那么选择App Store and Ad Hoc
Certificates

可能你注意到了屏幕上的其他选项。如果你想要使用类似Apple Push Notifications服务或者WatchKit的话,你需要另外创建证书,但是我们用不上。

  • 选择证书类型然后点击Continue
  • 现在就要你刚才通过Keychain Access创建的证书签名申请了,点击继续然后上传签名申请。一旦选择了.certSigningRequest文件点击Generate

现在你可以下载你的证书了。将他下载到一个安全的地方,然后打开安装。

制作Identidfier

如果你是使用XCode管理应用的话,那么就不需要关心这些步骤来,因为XCode可以使用一个Wildcard App ID,你也可以手动创建你自己的App ID(这里创建的Bundle ID必须和config.xml文件里面的一样)。以下是步骤:

  • 点击App IDs然后的点击 + 图标

Certificates

  • 填写App ID Description然后提供一个Explicit App ID就像这样:
    Certificates

这个必须和config.xml里面的id一致。

  • 来到屏幕底部点击Continue
  • 下一个屏幕点击Submit

此时App ID注册完成,可以在配置文件中使用了。

创建一个配置文件(Provisioning Profile)

创建配置文件之前需要添加应用可以运行的设备。

  • 点击Devices然后点有右上的 + 按钮

    Certificates

  • 如果是给测试制作配置文件的话选择iOS App Development,如果是发布版的话那么选择App Store。点击Continue

  • 选择刚才创建的App ID然后点击Continue

    Certificates

  • 选择想要用的证书然后点击Continue

Certificates

  • 选择所有可以想要运行的设备然后点击Continue
  • 给配置文件提供一个名字然后点击Generate

Certificates

现在你应该可以下载你的配置文件了。

生成 .p12

.p12文件(和配置文件一起的)是类似PhoneGap Build这样的服务必需的。如果你有一台Mac的话,这个跟你没什么关系,尽管如此你还是可以使用类似PhoneGap Build这样的服务(我不建议)。如果你需要在你的Mac上创建一个 .p12 文件的话。以下是步骤:

  • 打开Kaychain Access
  • 回到创建证书签名申请的第一步,我提到过 Keychain Access 会生成一个公钥和私钥对。在Keys部分找到这个:

Certificates

可以看到私钥也有了你在iOS Member Center创建的证书了。

  • 同时选中私钥和证书,右键点击并选择Export 2 items…

Certificates

  • 然后你会被问到文件存放到哪里,并且你可以选择给.p12输入一个密码或者直接留白。也有可能需要输入电脑的管理密码。

恭喜!你现在有.p12文件了。

在Windows上签名iOS应用

要完成以下步骤的话要先下载和安装OpenSSL。OpenSSL网址在此:
https://www.openssl.org/source/
下载操作系统适合的版本。

生成一个证书签名请求

OpenSSL安装设置好了之后我们就可以用它来生成一个Certificate Signing Request。这个将会在iOS Member Center撞见开发和发布证书的时候使用。

  • 将当前目录改为OpenSSL的bin目录,例如:
    1. cd c:/OpenSSL-Win64/bin
  • 生成一个私钥:
    1. openssl genrsa -out mykey.key 2048
  • 使用这个密钥生成一个证书签名申请
    1. openssl req -new -key mykey.key -out myCSR.certSigningRequest -subj "/emailAddress=you@yourdomain.com, CN=Your Name, C=AU"

确保用你自己的信息替换邮件地址,名字以及国家代码。

创建一个证书

要完成接下来的步骤需要登录到App Member Center然后去Certificates,Idenfitiers & Profiles部分:
Certificates

  • 选择iOS App下面的Certificates
  • 点击右上的+按钮:

Certificates

接下来选择要生成什么类型的证书。测试应用的话选择iOS App Development,如果是发布时话选择App Store and Ad Hoc

Certificates

可能你注意到了屏幕上的其他选项。如果你想要使用类似Apple Push Notifications服务或者WatchKit的话,你需要另外创建证书,但是我们用不上。

  • 选择证书类型然后点击Continue
  • 现在就要你刚才通过Keychain Access创建的证书签名申请了,点击继续然后上传签名申请。一旦选择了.certSigningRequest文件点击Generate

现在你可以下载你的证书了。将他下载到一个安全的地方,然后打开安装(方便起见,将他放到OpenSLL的bin文件夹内,例如 OpenSSL-Wind64/bin,因为这是我们运行命令的地方)。

制作Identidfier

  • 点击App IDs然后的点击 + 图标

Certificates

  • 填写App ID Description然后提供一个Explicit App ID就像这样:
    Certificates

这个必须和config.xml里面的id一致。

  • 来到屏幕底部点击Continue
  • 下一个屏幕点击Submit

此时App ID注册完成,可以在配置文件中使用了。

创建一个配置文件(Provisioning Profile)

创建配置文件之前需要添加应用可以运行的设备。

  • 点击Devices然后点有右上的 + 按钮

    Certificates

  • 如果是给测试制作配置文件的话选择iOS App Development,如果是发布版的话那么选择App Store。点击Continue

  • 选择刚才创建的App ID然后点击Continue

    Certificates

  • 选择想要用的证书然后点击Continue

Certificates

  • 选择所有可以想要运行的设备然后点击Continue
  • 给配置文件提供一个名字然后点击Generate

Certificates

现在你应该可以下载你的配置文件了。(当然,将他下载到OpenSSL的bin文件夹内这样接下来的步骤就会简单些)

生成 .p12

最后,我们将使用从Member Center下载的证书和一些命令来制作.p12

  • 运行如下命令生成一个PEM文件:
    1. openssl x509 -in ios_development.cer -inform DER -out app_pem_file.pem -outform PEM
  • 使用开始生产的密钥和刚才生成的PEM来制作你的.p12文件:
    1. openssl pkcs12 -export -inkey mykey.key -in app_pem_file.pem -out app_p12.p12
    这里很多地方都可能发生错误也很容易混淆。所以如果你遇到问题的话我的建议是重新开始整个流程,慢慢的小心的确保你每个输入都正确。
    恭喜!现在你有了.p12文件。由于你有了配置文件和.p12文件,如果你是使用PhoneGap Build的话,在上传的时候你就可以把这些文件附加上去了。完成之后你就可以生成一个签名的.ipa文件用来安装到设备上(在胎哪家了设备和正确的执行了所有步骤的情况下!)。
    我们将会简单的讨论如何使用PhoneGap Build进行构建。