iOS证书问题


发送者的身份是否为A(所以才叫签名)A公钥加密发送到B私钥解密,保证数据安全 苹果签名的方式为场景1,build过程中签名,Certificate是公钥,在使用钥匙串制作证书时,实际是通过上传本地生成的……的关系 苹果文档:开发者账号续费及相关问题 Apple Developer Help:签名的工作流 苹果文档:证书…… store证书:如果会员有效,则不影响线上app,只是不能上传新的 ad hoc和企业证书:不能运行 不对称加密 私钥: 自己保存 公钥: 外部使用 场景A私钥签名(加密)发送到B公钥解密,B可以确认……,797,0,0,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的权限(所需苹果服务)的文件。

具体请看

参考文章

关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系

苹果文档:开发者账号续费及相关问题

Apple Developer Help:签名的工作流

苹果文档:证书

 

企业签名QQ:281442504

分享到