iOS证书问题

Certificates(证书)

部分常用证书

  1. 开发证书:app development(开发和真机调试,有效期1年),push development(调试Apple Push Notification,有效期1年)
  2. 发布证书: app store证书,ad hoc证书(有效期3年), push Production(发布时使用的push证书,有效期1年)

常用证书的到期和移除影响

  1. app store证书:如果会员有效,则不影响线上app,只是不能上传新的
  2. ad hoc和企业证书:不能运行

不对称加密

私钥: 自己保存

公钥: 外部使用

  • 场景
  1. A私钥签名(加密)发送到B公钥解密,B可以确认发送者的身份是否为A(所以才叫签名)
  2. A公钥加密发送到B私钥解密,保证数据安全

苹果签名的方式为场景1,build过程中签名,Certificate是公钥,在使用钥匙串制作证书时,实际是通过上传本地生成的公钥,由苹果生成公钥证书///// 没有找到相关文档

开发设备迁移

场景:在使用新的设备开发且使用的是原来的开发者账号
导出后的文件同时包含了生成.ipa和开发者账号的信息


iOS证书问题_第1张图片
image

App ID

  • (team id由苹果产生).(bundle id search string自己填写)
  • App ID配置了匹配了该ID的app(bundle id)可以使用苹果服务(如push,应用内支付),App ID分为通配ID和明确ID,不同的苹果服务对这两种ID有限制,例如如要使用push服务,则必须使用明确的ID。 在打包时如果使用的服务需要证书,则需要提供相应的证书
  • xcode填写不同的bundleId,developer center会自动生成相关的App ID,经测试在xcode改变bundleId,并使用相关的开发证书,就会在developer center生成相关的App ID,且App ID的Name自动生成为:XC + bundleId。

Profiles(描述文件)

该文件描述了生成.ipa所需要的各种资源:证书,App ID,需要安装的设备,是为了方便配置的描述文件。

Devices

在测试时,需要添加测试设备,如果debug直接安装,则xcode会自动注册UDID。需要注意的是,删除设备只能在新的membership year时进行,也就是说在新的membership year如果添加了新设备,就不能再删除设备了(不能删除设备,表示服务器记录的可以添加的数量不变,在开发者中心网站,是可以删除的,只不过剩余添加设备的数量不会增加)。

层级结构

  1. Certificates是app打包,开启苹果相关服务所需的证书
  2. App ID包含了app需要的各种苹果服务
  3. Provisioning Profiles 包含了App可以运行的设备,开发者打包所需要的各种证书(push证书,app打包证书等),也就是包含了App ID和Devices

基本过程

  1. 注册开发者账号,并加入开发者会员,邀请开发者,并为开发者分配角色
  2. 根据app所需的功能配置各类证书
  3. 配置App ID,添加各项服务
  4. 配置provisioning profile,如果使用了automatic signing,不需要配置

xcode已经拥有了app需要运行的设备UDID和相关服务的证书,签名通过。*

automatic signing所做的事

  • 创建签名证书///需要测试,不同的角色,debug和发行证书
  • 注册连接的设备
  • 创建和编辑App ID
  • 管理provisioning profiles
  • 编辑entitlements和plist

Entitlement

包含app的权限(所需苹果服务)的文件。
具体请看

参考文章

  • 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  • 苹果文档:开发者账号续费及相关问题
  • Apple Developer Help:签名的工作流
  • 苹果文档:证书

你可能感兴趣的:(iOS证书问题)