码迷,mamicode.com
首页 > 移动开发 > 详细

iOS苹果账号/证书/推送证书之我见

时间:2016-04-22 20:04:18      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

一、苹果账号


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

费用99美金一年, 该账号在App Store销售者可以显示类似Studios,或者自定义的团队名称 ,比如Mamshare INC,公司账号可以允许多个开发者协作开发,比个人多一些帐号管理的设置,可以设置多个AppleID,分4种管理级别权限,详细见备注。100个苹果的iOS设备UDID测试。但是申请时需要填写公司的邓白氏编码(D-U-N-S)。

2、企业账号 (Enterprise)

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

二、证书/推送证书说明


1、概念介绍

1.1、Certificate

证书是用来给应用程序签名的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的,未经修改的。在Xcode Build Setting的CodeSigning Identity中,可以设置用于为代码签名的证书。 

证书主要分为两类:Development和Production,Development证书用来开发和调试应用程序,Production主要用来分发应用程序(根据证书种类有不同作用),下面是证书的分类信息:(括号内为证书有效期)

1)、Development

App Development (1年):用来开发和真机调试应用程序。

Push Development (1年):用来调试Apple PushNotification

2)、Production

Ad Hoc :用来发布AdHoc的应用程序。

App Store :用来发布提交App Store的应用程序。

Push Production (1年):用来在发布版本中使用Apple PushNotification

1.2、App ID

App ID用于标识一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的或者匹配的。App ID主要有以下两种: 

1)、Explicit App ID

唯一的App ID,这种App ID用于唯一标识一个应用程序,例如com.wzc.demo,标识Bundle ID为com.wzc.demo的程序。

2)、Wildcard App ID

通配符App ID,用于标识一组应用程序。例如*可以表示所有应用程序,而com.wzc.*可以表示以com.wzc开头的所有应用程序。

每创建一个App ID,我们都可以设置该App ID所使用的APP Services。每种服务都有着不同的要求,例如,如果要使用Apple PushNotification Services,则必须是一个explicit App ID,以便能唯一标识一个应用程序。下面是目前所有可选的服务和相应的配置要求。

技术分享

如果你的App使用上述的任何一种service,就要按照要求去配置。

1.3、Device

Devices中包含了该账户中所有可用于开发和测试的设备。 每台设备使用UDID来唯一标识。每个账户中的设备数量限制是100个。

1.4、Provisioning Profile

一个Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备。要打包或者在真机上运行一个应用程序,首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的;然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。Provisioning Profile就把这些信息全部打包在一起,方便在调试和发布程序打包时使用,这样只要在不同的情况下选择不同的profile文件就可以了。而且Provisioning Profile文件会在打包时嵌入.ipa的包里。

例如,如下图所示,一个用于Development的Provisioning Profile中包含了该Provisioning Profile对应的App ID,可使用的证书和设备。这意味着使用这个Provisioning Profile打包程序必须拥有相应的证书,并且将App ID对应的程序运行到Devices中包含的设备上去。

技术分享

如上所述,在一台设备上运行应用程序的过程如下:

技术分享

与证书一样,Provisioning Profile也分为Development和Distribution两种:

1)、Development (1年)

2)、Distribution (1年)

Ad Hoc

App Store

Ad Hoc的包只能运行在该账户内已登记的可用设备上,显然是有最多100个设备的数量限制。所以这两种Provisioning Profile文件的区别就在于其中的设备限制不一样而已,而他们所使用的Certificate是相同的。

2、程序打包介绍


2.1、苹果程序打包方式介绍

技术分享

1)、Save for iOS App Store Deployment

保存到本地准备上传App Store 或者在越狱的iOS设备上使用

2)、Save for Ad Hoc Deployment

保存到本地准备在账号添加的可使用设备上使用(具体为在开发者账户下添加可用设备的udid),该app包是发布证书编译的.

 3)、Save for EnterpriseDeployment

这种主要针对企业级账户下准备本地服务器分发的app

4)、Save for Development Deployment

针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的udid)。该app包是开发证书编译的

我们现在提供给测试打包,测试环境和HK环境都使用第三种方式打包(Save for EnterpriseDeployment),这样程序安装包可以安装在任意一台iPhone手机上,方便测试发给市场等公司内部同事安装体验;ME环境使用第二种方式打包(Save for Ad Hoc Deployment),第二种方式使用的发布证书与正式提交AppStore的版本使用的证书是一样的,因此他们可以共用同一推送证书,这样就可以测试ME环境的推送流程是否有问题了,这种方式打包的程序只可以运行在我们已经添加到开发账户对应的devices设备上使用

3、推送注意

使用苹果的推送服务,需要注意以下几点:

a. APNS是免费的。只要有开发者账号便可以申请APNS证书。

b. APNS是不可靠的,苹果对信息推送的可靠性不做任何保证。

c. APNS对消息的大小是有限制的,总容量不能超过256字节。

如果需要推送成功,需要保证 程序打包使用的证书 和服务器端推送使用的证书以及推送网址需要保持一致,才可以推送成功。一般对应逻辑如下:

Product证书--->Product推送证书--->Product证书打包的程序对应的devicetoken--->Product推送网址(ssl://gateway.push.apple.com:2195)

Development证书--->Development推送证书--->Development证书调试的程序对应的devicetoken--->Development推送网址(ssl://gateway.sandbox.push.apple.com:2195)。

三、提交AppStore后,Cornerstone打Tag步骤:


1.在Cornerstone找到要打Tag的程序,右击弹出下图,选着Tag...:
技术分享
2.弹出下图,解释如下:

Tag As:tag的名称,一般为做tag记录的文件夹名称_版本号_日期

Where:tag对应的路径,一般选择ios_app/tags

Revision:一般默认的为最后提交的版本

技术分享



iOS苹果账号/证书/推送证书之我见

标签:

原文地址:http://blog.csdn.net/wzc10101415/article/details/51210300

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!