APP签名和证书

4 10月

苹果要求所有APP都要有签名和证书,目的是保证APP的安全性和控制权。

应用商店会为APP进行签名和加密,以Apple为例,开发者将APP的二进制文件上传APP Store,APP Store会对二进制文件完成签名和加密的工作。用户从APP Store下载APP后,苹果手机的iOS系统在本地会用公钥验证APP的数字签名,也会用手机本地私钥会进行解密。这些都由APP Store和苹果手机的iOS系统完成,不需要开发者和用户操心。

对测试版稍微麻烦点,Apple不允许随意在本地安装APP,但又不能将每个测试版APP都上传APP Store去签名和加密,然后下载到本地,太麻烦了。

所以Apple设计出了一套机制,能在本地安装测试版APP。要验证开发者提供的APP是可信任的,且只能由可信任的用户安装。

第一步:开发者本地生成CSR(Certificate Signing Request)证书,该证书作为公钥用来给APP进行签名。

打开【钥匙串访问】并新建证书,填入你苹果账号,生成CSR,并保存到本地硬盘。

第二步:开发者将本地CSR上传给Apple官网,Apple官网会加上签名生成开发者证书Certificate。在苹果开发者官网上,进入【Certificates, Identifiers & Profiles】管理页面

侧边栏 Certificates 中列出开发组内的所有证书,可以新建证书Certificate(其实就是上传本地CSR证书,Apple会校验你本地CSR证书的合法性,即校验你是否是合法开发者)。点击+加号,选择开发者类型,上传本地CSR证书

第三步:开发者在Apple官网录入APP Bundle ID,用户的Device ID。(侧边栏 Identifiers,Devices 中列出开发组内的所有APP Bundle ID,和所有组员手机的 Device ID,一个开发者账户可以绑定多个设备,但上限是100台)

第四步:Apple官网用开发者证书 + APP Bundle ID + Device ID生成一个Profile。该Profile的作用就是描述:这个APP是由xx开发者开发,并将被xxx设备安装。即证书Certificate(用开发者本地CSR生成) + APP Bundle ID + 设备Device ID = Profile

第五步:开发者将Profile下载到本地,导入到Xcode工程内,工程编译打包生成APP的安装文件。(如果你是独立开发者,勾选上面【Automatically manage signing】自动管理证书就行)

第六步:用户可以下载并本地安装这个APP(下载APP后,iOS会验证该用户的Device ID是否能匹配到APP内置Profile文件内的Device ID,匹配到了才能安装)

证书就是封装本地CSR,APP Bundle ID,Device ID的东西,明白了上面开发者证书的流程后,其他类型的证书(如Push证书)的套路都是一样的。

本地生成好CSR后,在苹果开发者官网上,进入【Certificates, Identifiers & Profiles】管理页面,点击【Certificates】,创建你想要的Push类型的证书。

发表评论

邮箱地址不会被公开。 必填项已用*标注