上一篇我介绍了如何申请成为合法的iOS开发者,这篇文章会详细介绍如何使用授权文件(.mobileprovision)和签名证书文件(.cer)
在缴费成功后会收到一份来自Apple Developer Suport的确认邮件,如下图.
在邮件里有一个Login按钮,点击后可以进入Apple Developer会员中心。点击图中的iOS Provisioning Portal,进入开发者授权设置系统。
在设置界面中,可以选择点击页面下方的助手来运行向导。
或者直接从左边的导航来设置,我在这篇文章会主要介绍如何通过导航设置开发者授权以及证书。不过在此之前,我要先简单介绍一下Apple开发者授权的一些基本知识。
Apple对其设备有严格的使用限制,任何应用程序都必须经过iTunes Store下载安装,要么直接从设备里下载,要么从电脑中通过iTunes下载后同步到设备中。所以没有经过破解的设备是没有办法直接安装IPA文件的。但是Apple也提供了一套面向开发者的机制,让他们可以在指定的设备上安装IPA文件来测试和开发,这个机制的核心就是开发者授权。我前面介绍的申请流程就是申请获得一个可以在设备中安装运行IPA文件的开发者授权。
使用开发者授权是一套完整而且相对合理的流程,它可以分为下面几个阶段:
- 授权设备,将开发者授权与指定的设备绑定在一起,使得这些设备可以自由安装开发者发布的IPA。
- 生成授权文件.mobileprovision,这个文件会被打包进入IPA,实现设备与授权开发帐号的绑定。
- 生成证书文件.p12,这个文件也会被打包进入IPA,实现应用发行商的签名以及身份验证。
除此之外,开发者授权系统还提供了开发(Development)和发布(Distribution)两个不同的渠道。开发测试的时候需要设备的绑定而实现在设备上单独安装IPA,发布的时候则不需要绑定设备。所以开发与发布需要使用不同的.mobileprovision与.cer文件。
下面回到刚才的开发者授权系统,我先来介绍一下如何在开发阶段使用授权与证书。
点击左侧导航的Device,进入授权设备的页面,点击右上方的Add Device按钮可以添加一个设备。
添加设备的时候可以指定设备的名字(随便写),以及设备的UID(Unique Identifier)。每一个Apple的设备都有一个唯一的识别码,获得这个识别码的方法很简单,将你的设备连接到电脑,然后在iTunes里找到你的设备信息(如下图),点击图中红色方框的位置,设备UID就会显示出来。可以直接通过Ctrl + C (苹果是Command + C)可以把UID拷贝到剪切板。
点击左侧导航的App IDs按钮可以进入应用程序ID的配置页面,可以点击页面右方的New App ID按钮添加一个新的应用。这个ID对应的是即将开发和测试的应用程序。如下图,在description里添加一个单一应用的名称(不支持特殊字符),然后在最下面的Bundle Seed ID里面填入一个含有domain格式的字符串(如com.jamesli.appname)。Bundle Seed ID是一个集合了开发商与应用程序的信息,格式为(com.[开发商].[应用]),这里可以指定为单一应用,也可以指定为全部应用。如果是单一应用,建议刚才填写的description与Bundle Seed ID的最后一项相同(如angrypigs和com.jamesli.angrypigs),如果是全部应用,可以使用这样的Bundle Seed ID: com.jamesli.
申请证书的流程在MAC和WIN上是不同的。我分别介绍:
MAC
在Applications->Utilities里手动打开Keychain Access。从顶部菜单栏里Keychain Access -> Certificate Assistant -> Request a Certificate from Certificate Authority. 在新弹出的窗口中填写你的信息后选择Save to disk,就会在桌面保存一个CertificateSigningRequest文件。(如下图)
WINDOWS
在Windows下申请Apple证书是一件非常痛苦的事情,下面我就详细介绍以下:
- 首先需要在下面的链接下载OpenSSL。
http://www.slproweb.com/products/win32openssl.html
如下图,你需要下载Visual C++ 2008 Redistributables 和 Win32 OpenSSL v1.0.0d Light
- 下载安装后,在C盘下就有一个OpenSSL-Win32的安装目录。
- 以管理员身份打开命令行进入OpenSSL-Win32/bin文件夹,如果你不是管理员,需要先在命令行中键入下面的命令:
set RANDFILE=.rnd
键入下面的命令,生成一个private key:
openssl genrsa -out mykey.key 2048
然后键入下面的命令,申请一个CertSigningRequest文件,注意emailAddress后面是你的邮箱,CN后面是你的名字,C后面是国家
openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=Common Name, C=CN"
这样在OpenSSL-Win32/bin下面就生成了一个CertificateSigningRequest.certSigningRequest文件,注意任何错误提示都不要忽略,否则即使生成了文件也可能无法使用。
这个过程请不要使用Chrome浏览器
返回开发者授权系统的Certificate页面里,点击页面右方的Request Certificate申请一个证书,然后点击页面下方的按钮上传生成的certSigningRequest文件,这样就完成了证书的申请流程。申请成功后,Certificate页面里就有了一条证书,刷新几次页面后证书的状态就变成Issued,点击download按钮可以下载一个cer文件。
接下来是通过cer文件生成p12文件的过程。因为Flash发布iOS应用需要的证书文件格式是p12。这个流程在MAC和Windows上也是有区别的。
MAC
点击下载的.cer文件,文件会自动在Keychain Access里打开,可以右键点击key导出一个p12文件,如下图:
WINDOWS
Windows下生成p12仍然比较麻烦。首先使用管理员身份打开命令行进入OpenSSL-Win32/bin文件夹,如果不是管理员身份则同样需要先运行下面的命令:
set RANDFILE=.rnd
为了操作方便,将下载的cer文件拷贝到bin文件夹下,然后运行下面的命令行生成一个pem文件
openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
然后运行下面的命令生成一个p12文件:
openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12
在输入了两次密码之后,便会在bin文件夹下有一个iphone_dev.p12的文件。
正如上面我们提到的,如果要发布一个可以在指定的设备上单独安装的IPA,则必须使用开发者授权文件.mobileprovision。这个文件可以从开发者授权系统中申请获得。
点击左侧导航的Provisioning进入授权页面,如图点击右侧的New Profile按钮创建一个新的授权文件。
在创建页面中填入名称,选择创建好的证书,以及指定设备(可以多选),提交后就可以生成一个授权帐号。并且可以下载一个mobileprovision文件到本地。
到现在,我们就具备了Flash发布iOS应用的两个重要文件,.mobileprovision和.p12,返回Flash,在发布设置的Deployment选项卡中填入这两个文件(如下图)。这样就可以在指定的设备中开发iOS项目了!
下周我会继续给大家介绍如何在iTunes Connection中创建以及上传你的应用。