iOS App自签名是指在开发和测试过程中,自己生成iOS开发者证书和私钥,使用这些证书和私钥来签名和部署自己的iOS App,而不通过苹果官方的证书颁发机构(Certificate Authority)签名。
自签名的主要原理是通过在本地生成开发者证书和私钥,然后使用这些证书和私钥来签名App,从而使得该App在设备上运行时能够被信任和验证。
以下是实现自签名的步骤和详细介绍:
1. 生成私钥(Private Key):
首先,我们需要使用openssl工具生成一个RSA私钥。打开终端,输入以下命令:
```
openssl genrsa -out private.key 2048
```
2. 生成证书签名请求(Certificate Signing Request):
使用私钥生成CSR文件,CSR文件包含了我们的公钥信息用于向证书颁发机构申请签名证书。
继续在终端中输入以下命令:
```
openssl req -new -key private.key -out certificate.csr
```
在运行命令后,会要求填写一些证书信息,如国家、组织等。根据需要填写相应的信息。
3. 在苹果开发者中心创建证书:
在苹果开发者中心登录后,进入Certificates, Identifiers & Profiles,选择Certificates选项,点击右上角的“+”按钮,选择"iOS App Development"或"App Store and Ad Hoc"证书类型。
在生成证书的页面选择"Create Certificate",根据流程上传CSR文件,然后等待苹果验证,如果验证通过,下载证书文件(.cer)。
4. 将证书和私钥导出为P12文件:
将下载得到的证书文件双击打开,系统会自动导入到钥匙串访问工具中,选择证书,在右键菜单中选择导出,导出为.p12文件。
5. 使用xcode签名App:
打开Xcode,选择你的项目,在“General”选项卡中选择对应的签名证书,并选择“Automatically manage signing”。
如果已经手动签名,需要将证书和私钥导入到Keychain中,然后在Xcode的项目设置中选择对应的签名证书。
6. 编译和部署App:
在Xcode中选择设备,点击运行按钮编译并部署App。编译时,Xcode会使用你生成的自签名证书和私钥来对App进行签名。
需要注意的是,自签名的App在正式发布到App Store之前,仍然需要经过苹果的审核和验证过程。自签名只适用于开发和测试阶段,不适用于正式发布的App。
自签名的好处是不用依赖于苹果官方的证书颁发机构,可以更方便地进行开发和测试,节省了购买开发者证书的费用。然而,自签名的证书并不被iOS设备认可,导致该App只能在特定设备上安装和运行,无法被其他设备识别和信任。
因此,在正式发布App时,还是建议使用由苹果官方证书颁发机构签名的证书。