iOS证书及推送相关概念

1.i OS开发中碰到的概念

1.1 开发者账号

苹果对开发者账号分为如下几类:

  • 个人 Individual ($99/year,可以上架Apple Store,最大UUID数目100)
  • 组织 Organizations。又可以写分为两类:
    • 组织 Organization (普通账号,$99/year,能够上传Apple Store,最大UUID数目100)
    • 企业账号 Enterprise Program (企业账号,$299/year,能够进行企业发布,不能够发布到Apple Store,不限制UUID数目)
  • 教育机构(Educational Institutions)

1.2 证书 Certificate

证书是对电脑开发资格的认证,每个开发者帐号有一套。开发者证书可以分为两种:

1.2.1 开发证书 Developer Certification

安装在电脑上提供权限:开发人员通过设备进行真机测试。
可以生成副本供多台电脑使用。

1.2.2 发布证书 Distribution Certification

安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。
不可生成副本,仅有配置该证书的电脑才可使用;

1.3 授权文件 Provisioning Profile

授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录了是设备的UDID和程序的App ID。
即:使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App ID对应的程序。
开发者帐号在创建授权文件时候会选择App ID,(开发者帐号下App ID中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。

授权文件分为两种,对应相应的证书使用:

1.3.1 开发授权文件 Developer Provisioning Profile

功能:在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。

注意:

  1. 确保电脑有权限真机调试,即安装了开发证书或副本;
  2. 在开发工具中程序的Bundle identifier和选中使用的授权文件的App ID要一致;
  3. 连接调试的设备的UDID在选中的授权文件中有记录。

1.3.2 发布授权文件 Distribution Provisioning Profile

功能:在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。

  • 发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App ID,无需选择UDID;
  • 测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App ID和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。

1.4 AppID

APPID代表了一个具体的APP。通过BundleID定义一个APP,理论上每个APP的BundleID都需要不同,因此在开发者账号中单独有个功能用来维护AppID,需要提供BundleID来创建一个AppID。

AppID会用于生成与APP有关的证书(例如推送证书)和授权文件。在创建这些内容的时候可以选择AppID。

1.5 UDID

每一台Apple设备都会有一个唯一标识符,这就是UDID。Apple会根据这个唯一标识符进行安装方面的限制:

  • 对没有上架的应用,只有UDID包含在对应的授权文件的时候才能安装;
  • 对于上架的应用,Apple应该也维护了一张UDID与AppID的对应表,下载过或购买过的用户会有一条记录(猜测)。

2. 极光推送

极光推送提供了两种推送方式:

  • 红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。
  • 蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里。

他们的区别及应用场景:

附录、参考资料

热评文章