iOS开发者的申请流程
如果你是一个开发团队,在你打算掏腰包购买iOS开发者授权之前,最好先问一下你的同事,是否已经有人获得了开发许可,因为一个开发许可一年内最多可以授权给111个设备来开发测试。如果你没有授权许可可以借用,或者你打算最终在iTunes Store中以自己的名义发布你的应用,那么就准备一张国际信用卡,准备支付99美元来申请一个iOS开发者授权。
点击下面链接进入Apple Developer Center
http://developer.apple.com/
点击页面左边中部的iOS Dev Center进入iOS开发中心

点击页面顶部右侧的Register按钮,

然后点击Get Started按钮进入申请流程

Apple ID
在申请流程的第一步是选择Apple ID,如果你已经有一个Apple ID,曾经在Apple的应用商店中购买过应用,那么这里可以选择”Use an existing Apple ID”,否则需要点击”Create an Apple ID”来创建一个帐号。最后点击继续按钮。
Personal Profile
这里是一张表单,分为三个部分,创建Apple ID(如果之前选择的是创建),安全信息(Security Information),个人资料(Personal Information),注意所有的选项都需要填写!,填写完毕之后继续到下一个页面。
Professional Profile
这一页是开发者的一些职业信息。注意在第一项中选择iOS,如果你是学生,请在第二个问题后勾选Check this box if you are currently enrolled in a college or university. 全部选择完毕后继续。
Legal Agreement
这页是一份协议,仔细阅读后勾选下面的框框然后继续。
Email Verification
到刚才注册的邮箱里等着收邮件,将一封来自Apple Developer Support的信中的验证码填入这一页里的输入框后,点击继续。

看到这个页面,你就完成了开发者的注册流程,并且会收到一封确认邮件。
可以开发并测试你的应用程序了么? 不行,因为你只是登了记,想要在你的设备上测试开发,现在还不具备这个资格。
点击刚才的注册成功页面下方的一个继续按钮,再在接下来显示的页面右方点击”Join The Developer Programs”,来到下面的这个页面。
http://developer.apple.com/programs/start/standard/

从流程图上来看,我们至少还需要三步才能申请。准备好了么?点击继续。
Apple ID
再次确认你的Apple ID,因为我们刚才已经登记成功,所以这里只看右面的Existing Apple Developer部分。这里有三个选项,如果你是第一次申请而且不是学生,选择第一项;如果你是第一次申请但你是学生,选择第二项;如果你已经申请过这个授权但是想为你的授权帐号添加一些附属的功能,选第三项。选好之后继续。
发现流程有所变化,进入了申请付费的流程
Enter Account Info
首先需要选择你的身份是个人还是公司,如果是公司申请需要提供公司合法名称,法人名称,以及一些business document。这里只对个人申请作介绍。
点击Individual后,需要用刚注册的帐号登陆一次,进入填写银行帐号的阶段。
请注意这里的两个IMPORTANT和两个EXACTLY,帐号的姓名必须与信用卡上的一模一样,账单邮寄地址也必须与你接下来要在Apple Online Store付费时使用的邮寄地址一模一样。


Select Program
接下来一页是选择申请的平台,iOS和Mac都是99美元一年,Safari的插件开发是免费的。我们选择iOS,然后继续。
Review & submit.
在这一页检查你的填写信息是否正确,如果正确无误,点击继续。
Agree to License
仔细阅读开发者授权协议后,点击下面的选框然后继续。
Purchase Program
如果你在之前填表的时候选择的是China,那么这个时候你会看到一个大大的黄色惊叹号,并且告诉我们Apple Online Store在咱们国家是不好用的。
没有关系,Apple也提供了另一条付费的途径,在页面左边的中部可以下载一个PDF,将你的信用卡信息填进去,然后传真到页面指定的那个电话号码之后,你就可以等着收邮件了。
Apple网站上说是需要3-5个工作日,我等了差不多两个星期吧,先是信用卡被划走了99美元,然后收到了一封收据邮件,再后来收到了一个激活帐号的确认邮件,才最终完成了开发者授权的申请,成为一个合法的iOS开发者。
上一篇我介绍了如何申请成为合法的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 ID
点击左侧导航的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项目了!
