Certificates(证书)
部分常用证书
- 开发证书:app development(开发和真机调试,有效期1年),push development(调试Apple Push Notification,有效期1年)
- 发布证书: app store证书,ad hoc证书(有效期3年), push Production(发布时使用的push证书,有效期1年)
常用证书的到期和移除影响
- app store证书:如果会员有效,则不影响线上app,只是不能上传新的
- ad hoc和企业证书:不能运行
不对称加密
私钥: 自己保存
公钥: 外部使用
- 场景
- A私钥签名(加密)发送到B公钥解密,B可以确认发送者的身份是否为A(所以才叫签名)
- A公钥加密发送到B私钥解密,保证数据安全
苹果签名的方式为场景1,build过程中签名,Certificate是公钥,在使用钥匙串制作证书时,实际是通过上传本地生成的公钥,由苹果生成公钥证书///// 没有找到相关文档
开发设备迁移
场景:在使用新的设备开发且使用的是原来的开发者账号
导出后的文件同时包含了生成.ipa和开发者账号的信息
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如果添加了新设备,就不能再删除设备了(不能删除设备,表示服务器记录的可以添加的数量不变,在开发者中心网站,是可以删除的,只不过剩余添加设备的数量不会增加)。
层级结构
- Certificates是app打包,开启苹果相关服务所需的证书
- App ID包含了app需要的各种苹果服务
- Provisioning Profiles 包含了App可以运行的设备,开发者打包所需要的各种证书(push证书,app打包证书等),也就是包含了App ID和Devices
基本过程
- 注册开发者账号,并加入开发者会员,邀请开发者,并为开发者分配角色
- 根据app所需的功能配置各类证书
- 配置App ID,添加各项服务
- 配置provisioning profile,如果使用了automatic signing,不需要配置
xcode已经拥有了app需要运行的设备UDID和相关服务的证书,签名通过。*
automatic signing所做的事
- 创建签名证书///需要测试,不同的角色,debug和发行证书
- 注册连接的设备
- 创建和编辑App ID
- 管理provisioning profiles
- 编辑entitlements和plist
Entitlement
包含app的权限(所需苹果服务)的文件。
具体请看
网友评论