真机调试的步骤大概分八步:

1、真机调试所需材料  (99刀个人/企业账号、移动设备、mac、描述文件、证书、appID)

2、进入申请界面(apple developer)

3、添加App ID  ()

4、添加设备 (Devices)

5、添加证书 (Certificates)

6、添加描述文件 (Provisioning Profiles)

7、配置Xcode

8、P12导出证书

下面是具体实现过程:

详细地址:https://developer.apple.com/programs/which-program/

个人账号(Individual):

费用99美金一年, 该账号在App Store销售者只能显示个人的ID,比如zhitian zhang,单人使用。个人账号只能有一个开发者。100个苹果的iOS设备UDID测试。

 公司团队账号 (Company/Organization):

费用99美金一年, 该账号在App Store销售者可以显示类似Studios,或者自定义的团队名称 

,比如Mamshare INC,公司账号可以允许多个开发者协作开发,比个人多一些帐号管理的设置,可以设置多个AppleID,分4种管理级别权限,详细见备注。100个苹果的iOS设备UDID测试。但是申请时需要填写公司的邓白氏编码(D-U-N-S)。

(1.邓白氏编码(D-U-N-S)申请地址:https://developer.apple.com/ios/enroll/dunsLookupForm.action

(2.填写相关信息,照着填就好了,没有英文名的就用拼音代替,主要是Legal Entity Name(公司名字)了,如:北京xxx科技有限公司 Beijing xxx technology co., LTD

xxx换成拼音就好了

(3. 信息填写完毕后,点击continue提交,注意:可能失败好几次,没关系,后退继续点击continue提交,直到返回成功页面,提交就成功了。耐心等 待对方发来的确认邮件,我的是第二天才发来的确认有邮件(就是告诉你你的requestID),接着几个小时后,对方会有电话过来咨询核对相关信息,之后 几个小时会有邮件把D-U-N-S Number(邓白氏编码)发来,至此,申请成功了!!!

(4.D-U-N-S Number(邓白氏编码)的使用时间是14个工作日后使用的,也就是14个工作日内不能用,等着时间到了之后才能用于开发者账号申请。不过有网友如此建议:补充:拿到邓白氏编码不要立即去填,它的生效时间是14个工作日,建议一周去填了提交一次,如果一周提交三次都没有通过的话,你的账号会被锁掉,到时候即使通过了也显示不了,所以切记:一周提交一次。如果这次不行,再等一周再提交这个编码,祝大家好运啦!


 

备注:

Admin Legal权限:超级管理员。可以管理开发者和管理app store中的应用。

Admin权限:管理员,可以管理开发者。添加测试机子和管理团队证书。

Member权限:是普通开发者。只能下载证书和使用证书

No Access权限:没有相应的权限。

 

申请公司团队账号地址:http://developer.apple.com/programs/ios/ 详细流程


企业账号 (Enterprise)

 

费用299美金一年, 该账号开发应用不能发布到App Store,只能企业内部应用,苹果的iOS设备UDID数量不限制。企业账号适合不希望上线App Store,但是需要企业内部比如1000人的iOS设备都部署。公司测试部门需要全公司测试设备,突破100个UDID的限制。

 (要考虑服务器停用的情况)

教育账号(University)

 

费用0美元 ,只能教育机构或学院内部使用。必须是苹果iOS开发者计划授权机构。不能对外正式发布iOS应用程序(需要提供教育机构证书文件)。

 

备注

申请地址:https://developer.apple.com/programs/start/university/

 

 

账号类型

成为苹果开发者就必须注册苹果开发者账号并付费,拥有了开发者账号后可以开发相应计划的App并上线App store提供免费或付费下载,或是开发给企业内部使用。苹果为注册了发者账号的开发者提供了如下几类计划:

  • iOS开发计划

iOS 开发者计划主要为iOS设备进行App开发,比如iPhone和iPad等,iOS计划也是目前苹果整个开发者计划类型中人数最多的。账号类 型分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别 为$99、$99、$299、免费。根据账号类型的不同,申请的条件和所具有的权限也不同。

个人计划只需要填写个人信息并通过苹果审核即可,公司计划需要出示相应的公司信息、营业执照等,企业账号需要出示的信息和公司账号类似,高校计划需要提供高校基本信息,在注册方式上苹果开发者官网有详细的流程。

在 权限上,个人账号和公司账号同为$99/年,但是在发布署名上,公司账号可以填写公司或组织信息(比如某某公司、某某工作室),而个人账号只能默 认显示注册时填写的个人信息,并且不能修改。另外,公司账号提供团队开发的模式,一个公司类型账号可以管理添加开发者作为Team member协同开发。当然,也可以将个人账号升级为公司账号,前提是得提供相关公司信息并且得邮件联系开发者支持中心或者拨打支持电话。企业账号 为$299/年,企业账号和前两者最大的不同在于不能将App发布到App store,但可以将App放到内部服务器上提供给企业内部任意一台设备进行安装,并且不需要特别绑定Device ID。例如企业内部OA系统如果是用iOS设备的话,那就适合这个计划。最后一种是高校计划,苹果为鼓励高校更多的参与到苹果开发者计划中来,特意推出这 一项计划,高校计划具有在真机上测试等权限,但不能将App发布到App store。

  • Mac开发计划

Mac开发者计划主要是针对在Mac电脑上进行App开发的开发人员,费用是$99每年。账号类型也分为个人和公司两种,两种账号的区别和iOS设备开发者账号类似。

  • Safari扩展开发计划

Safari开发者计划主要是在Safari浏览器上进行一些扩展开发,比如自定义Safari的控件或者页面显示方式等,这个计划申请是免费的。同样分为个人和公司两种类型。

  • MFi计划

MFi计划主要针对iPod、iPhone以及iPad的一些外设的开发,这个计划也是免费的,通过苹果提供的一些接口和条款进行外设的开发,比如针对iPod和iPhone的外设音响。

一、关于证书

苹果使用密文签名技术来验证App的合法性,不管是iOS应用还是Mac应用都需要相应的签名证书来作为测试或发布App用。这里主要谈谈iOS的证书,当然,Mac的证书也基本类似。

在开发iOS应用的时候,我们需要签名证书(开发证书)来验证,并允许我们在真机上对App进行测试。另外,在发布App到App store的时候,我们也需要证书(发布证书)来做验证。那么什么是签名证书,如何获取签名证书,下面听我慢慢道来。

首先,证书(Certificate) 是用来证明某一件事是否成立的,好比拿到的获奖证书,是证明参加比赛并获奖的凭 证。类似,在iOS开发中,用证书来证明你是否具有某些权限或者能力来做某事。代码签名验证允许我们的操作系统来判断是谁对App进行了签名,在安装了 Xcode后,Xcode会在项目编译期间使用你的代码签名验证,这个验证由一个由Apple认证过的公钥-私钥对组成,私钥存储在你的钥匙串中(Mac 本地,在系统实用工具中),公钥包含在证书(Certificates)中,证书在本地钥匙串和开发者账号中都有存储,这种公钥-私钥验证授权的方式在很 多地方都有使用到,比如Git中的SSH协议也是通过这种方式来确认访问权限。另外,还有一个我们可以叫做媒介证书的证书来确保我们的证书 (Certificates)是经过授权而发布的。如下图所示:

当 安装好Xcode时,媒介证书(Intermediate Certificate)就已经安装到我们的钥匙串中去了。通过在开发者账号(Developer Account)和本地(Mac)都经过验证的证书(Certificate)我们就可以利用合法的证书进行App的测试和发布了。

二、请求证书

在为App签名前,我们需要向Apple请求签名证书,前提是你已经注册了开发者计划并付费。

1、打开Xcode并进入右上角Organizer窗口,选中顶部第一个名为Devices的Tab,如下图:

2、点击菜单栏Editor并选择Refresh from Developer Portal

3、输入开发者账号用户名和密码并点击“Log in”,如下图:

4、完成后点击“Submit Request”按钮,此时Xcode会向开发者后台请求相应的证书,证书包括开发证书(Development)和发布证书(Distribution)。窗口如下图所示:

5、 请求完毕后,Xcode会询问是否需要导出开发者证书,选择“Export”导出。前面的介绍中我们提到过,私钥(Private key)是存储在本地的,证书(Certificate)随着公钥(Public key)存储在开发者账号后台,公钥=私钥对完成对一个开发者和一台开发Mac设备的授权,所以,当我们创建证书时就需要马上备份我们的证书,当切换 Mac进行作业时,我们只需要导入我们的私钥证书即可(公钥证书在本地和开发者中心都存储有)。

6、导出过程中会要求你对导出的证书设置密码,下次导入此证书时需要输入该密码,所以需要记住此处设置的密码。导出的证书扩展名为.developerprofile,当下次切换Mac进行开发时,,导入该证书即可。

导入.developerprofile证书:

三、验证证书

1、在Xcode Organizer中左侧TEAMS选项卡中可以看到两个证书显示其中,一个是开发证书(Development),一个是发布证书(Distribution),如果开发者证书验证授权成功,则在证书上的小人头像会显示绿色小钩。

2、当请求了开发者证书后,会自动在钥匙串中(系统实用工具-钥匙串访问)显示开发证书和发布证书。当选中一个证书时,顶部的说明信息包括了证书发行商和授权信息,同样如果看到绿色打钩说明证书已经安装成功。

3、在开发者后台查看开发证书,登陆Developer后台以后进入Certificates选项卡,分别在Development和Distribution选项卡中查看开发证书和发布证书。此时,证书的信息应该和在Xcode中一致。

四、回顾总结

在 上面的讨论中,我们介绍了签名证书以及如何请求及验证证书。在iOS开发中,总的来说主要包括两个证书,一个是开发证书(Development certificates)用来验证哪些设备能用来测试App,在开发测试阶段使用这个证书。另一个是发布证书(Distribution certificates),用来验证是否能向App store提交App审核和发布。如果是公司团队账号,发布证书能在具有发布权限的团队成员间共享。以下是官方对证书类型和名字的一个列表统计,比较详细 的例举了证书类型、名字以及简要描述。

什么是Provisioning Profile?

从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者账号体系中所扮演的角色也是配置和验证的作用。如果你有开发者账号,可以打开你的开发者控制台,在首页可以看到如下界面。如果你没有开发者账号,那就看图片意会吧!:)

现 在开发者控制台相比之前在界面布局上已经进行了改版,更加直观,也更加美观。红框标记的地方我们可以看到Provisioning Profile文件夹图标,点击进去,就来到了所有证书和配置文件的管理控制中心。我们可以在最下方看到标记为Provisioning Profiles的区域,这里就是我们管理iOS或者Mac应用程序Provisioning Profile的地方啦。

点 击右上方的“+”号会提示我们新建什么类型的Provisioning Profile,可以看到,Provisioning Profile分为两大类,一类是Development,一类是Distribution,前者是创建我们在开发环境下的配置文件,不能进行发布,后者 可以创建发布到App Store或者以Ad Hoc发布的配置文件。创建Development下得Provisioning Profile后,我们可以在真机上对App进行开发和调试。在Distribution下的Provisioning Profile,我们可以选择创建发布到应用商店的配置文件,另外就是Ad Hoc方式下的配置文件。Ad Hoc是指在不发布到App Store的情况下,可以将发布状态下的App装在指定的一些真机上进行测试,但是这里指定的设备数量是有限的(99台)。

到这里,我们已经知道Provisioning Profile有两类,一类是开发状态下的,一类是发布状态下得。那Provisioning Profile里面究竟有些什么东西呢,我们接着往下看。

我们选择创建一个Development状态下的Provisioning Profile,首先需要我们填写App ID,我们知道,每一个应用都有唯一的App ID,这个ID就好比我们应用程序的身份证,通过下图可以看到关于App ID的构成。

现 在,App ID由一个Apple产生的Team ID作为前缀,后面跟的其实就是我们在Xcode中设置的Bundle ID,其实就相当于包名(Android里面也是利用应用包名来唯一标记App)。通过这种方式,我们就将一个指定的App与一个 Provisioning Profile进行绑定了,也就是说这个Provisioning Profile只能作为这一个App的开发配置文件。那我们每一次开发新应用的时候就得重新来新建Provisioning Profile,这显得非常麻烦,好在Apple已经为我们想到了这一点,我们可以通过通配符来标记App ID,这样我们可以只创建一个开发配置文件就可以来测试所有我们开发的App了,下图是使用通配符标记的App ID格式。

关于App ID的创建,可以到证书配置管理控制台Identifiers模块下App IDs栏目下进行创建,这里就不再详细赘述了。App ID选好了,我们继续下面的步骤。这时,提示会要求我们选择Certificates。

那什么是Certificates呢?你可以在苹果开发者账号那些事儿(二)中 得到详细的答案。如果你现在不想看,那简单的说,Certificates就是一个来验证你是合法开发者的证书文件,这里通常是对你进行开发的Mac进行 授权。我们可以选择一个经过验证的Certificate来配置这个Provisioning Profile。选择完毕后我们就可以进行下一步了。这时,提示会要求我们选择Device。

选 择Device也就是说我们希望这个Provisioning Profile对哪些设备进行授权,只有选中的设备,才能使用这个配置文件来进行真机调试,否则,装了也没有,因为别人压根没对你授权。设备选择完毕后, 我们继续下面的步骤,这时,提示就会要求我们输入这个Provisioning Profile的名字了。

在 统计信息中我们可以看到,Provisioning Profile的类型为Development类型,选择了一个指定的App ID,指定了一个Certificates,另外指定了一台设备,这样,我们的Provisioning Profile就配置完成了。这时到配置文件列表我们可以看到刚刚生成的这个配置文件,显示为Active已激活,另外要说的是,每一个 Provisioning Profile都有一个有效期,通常是一年,过期后就得重新验证一下,不需要重新生成,只需手动验证一下即可,点击查看详情。

这 里,我们可以看到比之前的详情更丰富的信息,其中Enabled Service中例举的信息是在配置App ID的时候选择的,作用是为这个配置文件申请诸如消息推送和应用内购买的权限。另外,Expires指明了这个配置文件的过期时间,最后Status就显 示状态为Activie,如果不可用的话会显示Invalid。如果发现配置文件过期,就像之前说的,手动验证一下即可。最后,可以将 Provisioning Profile下载到本地,下载完成后,我们就可以看到一个扩展名为.mobileprovision的文件,打开Xcode,连上设配,双击这个配置文 件,这个配置文件就被安装到我们的测试设备中了,通过Xcode的Device窗口可以查看这台测试设备所有的Provisioning Profile。到这里,我们已经知道了Provisioning Profile是用来做验证授权的,也知道了它其实是装在我们的测试设备上的,当然,你也知道了如何去创建它。那么,接下来我们就来看看 Provisioning Profile的内部结构图。

这 里,拿Ad Hoc方式的配置文件来举例,按照之前说的,Ad Hoc能够在不发布到App Store的前提下允许指定的设备安装App,那这个配置文件中肯定就包含Devices信息,同时也包含App ID,另外还包含一个发布状态下的Certificate。到这里,或许你会有疑问,正式发布状态下的配置文件应该是怎样的,首先要说的是,正式发布 App时,Provisioning Profile是不需要提前安装到用户手机上的,如果这样的话,那估计Apple就傻了。在正式发布到Apple Store时,发布状态的Provisioning Profile已经以签名的方式和App进行了绑定,有一点不同的是,发布状态的Provisioning Profile不需要指定Device,因为它不知道将被哪些设备使用,下图是发布状态下的配置文件结构。

最后,如果是Company类型的开发者账号,可以生成一个供团队使用的Team Provisioning Profile,通过这个配置文件,团队内成员可以共用一个配置文件来进行开发调试,当然,App ID得指定成通配类型的。

这 里需要注意的是,每一个苹果开发者账号只有一个Agent权限,就就是说,最终真正有权限发布到App Store的人就是这个开发者账号的拥有者,他的身份类型就是Agent,另外还有两种身份类型,一种是Admin,一种是Member,关于更多团队账 号角色的信息,你可以参考这里

总结

通过上面的内容,你是否已经能够回答最开始提出的问题呢?什么是Provisioning Profile?这里做一个简单的总结:

  • Provisioning Profile是一个安装在测试设备上的配置文件,文件扩展名为.mobileprovision
  • Provisioning Profile有两种类型,一种是Development、一种是Distribution,分别对应开发状态和发布状态的配置文件
  • 配置Provisioning Profile之前需要先设置好Certificates、App ID、Devices等信息
  • Provisioning Profile的有效期为12个月,过期后得手动验证方可继续使用

内 容就到这里了,要想理解的更透彻,还是实际去操作和实验来的快。如果你是Xcode5了,进到Preferences里面,选择Accounts 选项卡,将你的Apple ID添加到Xcode里面,然后到工程General和Build Settings里面去折腾吧。后面的事,你就自己琢磨吧!:)