苹果对开发者主要分为3类:个人、组织(公司、企业)、教育机构。即:
1、个人(Individual)
2、组织(Organizations)
组织类又分为2个小类:
(1)公司(Company)
(2)企业(Enterprise)
3、教育机构(Educational Institutions)
更多内容介绍,请看苹果官方说明:Choosing a Membership
我们经常最关注的是个人、公司、企业这3类,公司和企业都属于“组织”大类,下面对这3个做下简单对比:
1、个人(Individual):
(1)费用:99美元一年
(2)App Store上架:是
(3)最大uuid支持数:100
(4)协作人数:1人(开发者自己)
说明:“个人”开发者可以申请升级“公司”,可以通过拨打苹果公司客服电话(400 6701 855)来咨询和办理。
2、公司(Company):
(1)费用:99美元一年
(2)App Store上架:是
(3)最大uuid支持数:100
(4)协作人数:多人
允许多个开发者进行协作开发,比个人多一些帐号管理的设置,可设置多个Apple ID,分4种管理级别的权限。
说明:申请时需要填写公司的邓白氏编码(DUNS Number)。
3、企业 (Enterprise)
(1)费用:299美元一年
(2)App Store上架:否
即该账号开发应用不能发布到App Store,只能企业内部应用。
(3)最大uuid支持数:不限制
(4)协作人数:多人
费用:299美元一年
说明:需要注意的是,企业账号开发的应用不能上线App Store,适合那些不希望公开发布应用的企业。同样,申请时也需要公司的邓白氏编码(DUNS Number)。
这一页是开发者的一些职业信息。注意在第一项中选择iOS,如果你是学生,请在第二个问题后勾选Check this box if you are currently enrolled in a college or university. 全部选择完毕后继续。
Legal Agreement
这页是一份协议,仔细阅读后勾选下面的框框然后继续。
Email Verification
到刚才注册的邮箱里等着收邮件,将一封来自Apple Developer Support的信中的验证码填入这一页里的输入框后,点击继续。
![Screen-shot-2011-04-21-at-5.56.12-PM Screen-shot-2011-04-21-at-5.56.12-PM](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_2_register/_jcr_content/articlecontentAdobe/image_2.adimg.mw.600.png/1306399921961.png)
看到这个页面,你就完成了开发者的注册流程,并且会收到一封确认邮件。
可以开发并测试你的应用程序了么? 不行,因为你只是登了记,想要在你的设备上测试开发,现在还不具备这个资格。
点击刚才的注册成功页面下方的一个继续按钮,再在接下来显示的页面右方点击”Join The Developer Programs”,来到下面的这个页面。
http://developer.apple.com/programs/start/standard/
![Screen-shot-2011-04-21-at-6.06.27-PM Screen-shot-2011-04-21-at-6.06.27-PM](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_2_register/_jcr_content/articlecontentAdobe/image_3.adimg.mw.600.png/1306399982626.png)
从流程图上来看,我们至少还需要三步才能申请。准备好了么?点击继续。
Apple ID
再次确认你的Apple ID,因为我们刚才已经登记成功,所以这里只看右面的Existing Apple Developer部分。这里有三个选项,如果你是第一次申请而且不是学生,选择第一项;如果你是第一次申请但你是学生,选择第二项;如果你已经申请过这个授权但是想为你的授权帐号添加一些附属的功能,选第三项。选好之后继续。
发现流程有所变化,进入了申请付费的流程
Enter Account Info
首先需要选择你的身份是个人还是公司,如果是公司申请需要提供公司合法名称,法人名称,以及一些business document。这里只对个人申请作介绍。
点击Individual后,需要用刚注册的帐号登陆一次,进入填写银行帐号的阶段。
请注意这里的两个IMPORTANT和两个EXACTLY,帐号的姓名必须与信用卡上的一模一样,账单邮寄地址也必须与你接下来要在Apple Online Store付费时使用的邮寄地址一模一样。
![Screen-shot-2011-04-21-at-6.31.30-PM Screen-shot-2011-04-21-at-6.31.30-PM](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_2_register/_jcr_content/articlecontentAdobe/image_4.adimg.mw.600.png/1306400045561.png)
![Screen-shot-2011-04-21-at-6.31.36-PM Screen-shot-2011-04-21-at-6.31.36-PM](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_2_register/_jcr_content/articlecontentAdobe/image_d2e6.adimg.mw.600.png/1306400572184.png)
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的确认邮件,如下图.
![pic01 pic01](http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/pic01.png)
在邮件里有一个Login按钮,点击后可以进入Apple Developer会员中心。点击图中的iOS Provisioning Portal,进入开发者授权设置系统。
![pic02 pic02](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_0.adimg.mw.600.jpg/1306400728764.jpg)
在设置界面中,可以选择点击页面下方的助手来运行向导。
![pic03 pic03](http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/pic03.png)
或者直接从左边的导航来设置,我在这篇文章会主要介绍如何通过导航设置开发者授权以及证书。不过在此之前,我要先简单介绍一下Apple开发者授权的一些基本知识。
Apple对其设备有严格的使用限制,任何应用程序都必须经过iTunes Store下载安装,要么直接从设备里下载,要么从电脑中通过iTunes下载后同步到设备中。所以没有经过破解的设备是没有办法直接安装IPA文件的。但是Apple也提供了一套面向开发者的机制,让他们可以在指定的设备上安装IPA文件来测试和开发,这个机制的核心就是开发者授权。我前面介绍的申请流程就是申请获得一个可以在设备中安装运行IPA文件的开发者授权。
使用开发者授权是一套完整而且相对合理的流程,它可以分为下面几个阶段:
- 授权设备,将开发者授权与指定的设备绑定在一起,使得这些设备可以自由安装开发者发布的IPA。
- 生成授权文件.mobileprovision,这个文件会被打包进入IPA,实现设备与授权开发帐号的绑定。
- 生成证书文件.p12,这个文件也会被打包进入IPA,实现应用发行商的签名以及身份验证。
除此之外,开发者授权系统还提供了开发(Development)和发布(Distribution)两个不同的渠道。开发测试的时候需要设备的绑定而实现在设备上单独安装IPA,发布的时候则不需要绑定设备。所以开发与发布需要使用不同的.mobileprovision与.cer文件。
下面回到刚才的开发者授权系统,我先来介绍一下如何在开发阶段使用授权与证书。
点击左侧导航的Device,进入授权设备的页面,点击右上方的Add Device按钮可以添加一个设备。
![pic04 pic04](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_2.adimg.mw.600.png/1306401017578.png)
添加设备的时候可以指定设备的名字(随便写),以及设备的UID(Unique Identifier)。每一个Apple的设备都有一个唯一的识别码,获得这个识别码的方法很简单,将你的设备连接到电脑,然后在iTunes里找到你的设备信息(如下图),点击图中红色方框的位置,设备UID就会显示出来。可以直接通过Ctrl + C (苹果是Command + C)可以把UID拷贝到剪切板。
![pic05 pic05](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_3.adimg.mw.600.jpg/1306401066719.jpg)
点击左侧导航的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.
![pic06 pic06](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_4.adimg.mw.600.png/1306401132005.png)
![pic07 pic07](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_5.img.png/1306401430404.png)
WINDOWS
在Windows下申请Apple证书是一件非常痛苦的事情,下面我就详细介绍以下:
- 首先需要在下面的链接下载OpenSSL。
http://www.slproweb.com/products/win32openssl.html
如下图,你需要下载Visual C++ 2008 Redistributables 和 Win32 OpenSSL v1.0.0d Light
![pic08 pic08](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_6.adimg.mw.600.png/1306401403567.png)
- 下载安装后,在C盘下就有一个OpenSSL-Win32的安装目录。
![pic09 pic09](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_7.adimg.mw.600.png/1306401490384.png)
- 以管理员身份打开命令行进入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文件,注意任何错误提示都不要忽略,否则即使生成了文件也可能无法使用。
![pic10 pic10](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_8.adimg.mw.600.png/1306401705695.png)
![pic11 pic11](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_9.adimg.mw.600.png/1306401766297.png)
![pic12 pic12](http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/pic12.png)
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按钮创建一个新的授权文件。
![pic13 pic13](http://www.adobe.com/content/dotcom/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/_jcr_content/articlecontentAdobe/image_11.adimg.mw.600.jpg/1306402040890.jpg)
在创建页面中填入名称,选择创建好的证书,以及指定设备(可以多选),提交后就可以生成一个授权帐号。并且可以下载一个mobileprovision文件到本地。
到现在,我们就具备了Flash发布iOS应用的两个重要文件,.mobileprovision和.p12,返回Flash,在发布设置的Deployment选项卡中填入这两个文件(如下图)。这样就可以在指定的设备中开发iOS项目了!
![pic14 pic14](http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/cn/devnet/flash/articles/ios_tutorial_3_pro_cert/pic14.png)