Xcode开发的应用安装到手机的全过程
一、名词解释
Bundle ID:应用的唯一标识,相当于应用的身份证号
开发者证书:由苹果签发的数字证书,包含开发者公钥、teamID、有效期等,用来证明开发者身份
描述文件(.mobileprovision):打包文件,包含允许安装的设备的UDID、关联的bundleID、对应的开发者证书、应用权限。
二、详细过程
1、配置项目的基础信息(绑定bundleID、team)
确定bundleID:这个bundleID需要与苹果开发者中心注册的APP ID一致
关联开发团队:通过团队关联的开发者的合法身份,确保后续证书和描述文件的申请权限
2、生成证书和密钥对
申请开发者证书:数字证书包括开发者公钥、苹果签名、应用有效期、teamID等,数字签名是用苹果自己的根证书私钥进行加密的,证明该开发者经过苹果授权。
3、创建描述文件
描述文件内容开发者在苹果开发者中心手动/自动生成,包含 允许安装的设备UDID、关联的bundleID、对应的开发者证书(步骤2生成)、应用可使用的权限,该描述文件用苹果的私钥签名。
一句话来说就是:只能在该设备上安装对应开发者开发的某一bundleID的应用。
4、应用签名(确保内容未被篡改)
xcode将代码编译为可执行文件,打包成.app的格式(包含代码、资源、info.plist等),然后对.app里的所有文件通过哈希算法计算出哈希值,之后用本地私钥进行加密生成数字签名,
将应用的数字证书、开发者证书、描述文件 打包到.app 的_CodeSignature目录
5、设备验证与安装
Xcode 通过 USB 或无线将签名后的.app发送到 iPhone。
验证描述文件:利用苹果公钥进行解密,然后验证描述文件中的bundleID与应用info.plist一致,本机UDID在描述文件的允许列表中。
开发者证书验证:用苹果公钥进行解密确认开发者身份可信,在开发者证书中拿到公钥
应用完整性验证:用证书中的公钥解密应用签名,然后重新计算.app内文件的哈希值,两次的值进行对比,确保应用未被篡改。
首次安装需用户在设置→通用→VPN与设备管理中信任该开发者证书(将其加入设备信任列表)。
然后完成安装,可正常启动。
更多推荐

所有评论(0)