关于IOS的开发,需要配置证书、密钥、管理标识符、功能配置等等,很是繁杂,以前也配置过,这次因为重新购买了新的M1笔记本,准备重新配置下,顺便记录,以便查询。
如果要开发IOS,首先需要在苹果开发者官网申请注册账户,付费后才可以,每年大概688元,关于注册账户等,不在本文讨论范围。
官方帮助文档
一、证书类型
类型 | 用途 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Apple 开发 | 用于 Xcode 11 及更高版本。 在设备上运行 iOS、macOS、Apple tvOS 或 watchOS App,并在开发过程中使用特定的 App 服务。 | ||||||||||
Apple 分发 | 用于 Xcode 11 及更高版本。 向指定设备分发你的 iOS、macOS、Apple tvOS 或 watchOS App 以进行测试或将其提交到 App Store。 | ||||||||||
APNs 授权密钥 | 生成服务器端令牌来代替通知请求的证书。 | ||||||||||
Apple 推送服务 | 在你的通知服务与 APNs 之间建立连接,以向你的 App 发送远程通知。 | ||||||||||
iOS 开发 | 在设备上运行 iOS、Apple tvOS 或 watchOS App,并在开发过程中使用特定的 App 服务。 | ||||||||||
iOS 分发 | 向指定设备分发你的 iOS、Apple tvOS 或 watchOS App 以进行测试或将其提交到 App Store。 | ||||||||||
Mac 开发 | 在开发和测试期间为 Mac App 启用特定的 App 服务。 | ||||||||||
Mac App 分发 | 在将 Mac App 提交到 Mac App Store 之前对其进行签名。 | ||||||||||
Mac 安装器分发 | 对包含你已签名 App 的 Mac 安装器软件包进行签名,并提交到 Mac App Store。 | ||||||||||
Developer ID App | 在 Mac App Store 以外分发 Mac App 前,对其进行签名。 | ||||||||||
Developer ID 安装器 | 对包含你已签名 App 的 Mac 安装器软件包进行签名并在 Mac App Store 之外分发。 | ||||||||||
Apple Pay | 解密 Apple 向商家/开发者发送的 App 交易数据。 | ||||||||||
商家身份 | 向 Apple Pay 服务器验证你的身份。 | ||||||||||
Pass Type ID | 对“钱包”内的凭证进行签名和发送凭证更新。 | ||||||||||
Swift 签名 | 用于 Swift Package Manager 版本 5.9 或更高版本。 对 Swift 软件包和软件包集合进行签名,以便分发。 | ||||||||||
VoIP 服务 | 在你的通知服务器与 APNs 之间建立连接,以向后台 VoIP App 通知有传入活动。 | ||||||||||
WatchKit 服务 | 在你的通知服务器与 APNs 之间建立连接,以更新 ClockKit 的复杂功能数据。 | ||||||||||
网站推送 ID | 对网站更新进行签名和发送网站更新。 |
登录到账户后看到的创建新证书界面:
二、创建证书
在 App 开发期间,对应不同的环境,你将创建不同的证书类型。iOS、Apple tvOS 和 watchOS App 使用同一套证书,而 macOS App 使用另一套证书。如果你使用的是 Xcode 11 或更高版本,则可以为所有平台创建统一的开发和分发证书。有了开发证书,你就可以在设备上运行你的 App 以及使用 App 功能;而有了分发证书,就可以分发你的 App 进行测试,并将 App 上传到 App Store Connect。
开发证书属于个人。你总共可以创建两个 iOS 开发证书和两个 Mac 开发证书。在你的开发者账户中,电脑名称会追加到开发证书名称后面 (例如,Gita Kumar (Work Mac)
,其中 Work Mac
是电脑名称),便于你识别证书。
分发证书属于团队,每个团队只能有一种类型的分发证书 (Developer ID 证书除外)。只有账户持有人或管理角色可以创建分发证书 (如果你以个人身份注册,你即为账户持有人)。
可以使用 Xcode 或开发者账户创建和撤销证书。
在正式创建证书前,首先需要创建证书签名请求()certSigningRequest创建证书签名请求()。
1. 创建证书签名请求(本地电脑上): .certSigningRequest 文件
打开应用程序中的钥匙串
-
选取“钥匙串访问”>“证书助理”>“从证书颁发机构请求证书”。
-
在“证书助理”对话框中,在“用户电子邮件地址”栏位中输入电子邮件地址。
-
在“常用名称”栏位中,输入密钥的名称 (例如,Gita Kumar Dev Key)。
-
将“CA 电子邮件地址”栏位留空。
-
选取“存储到磁盘”,然后点按“继续”。
注意:
用户电子邮件地址:就是注册苹果账户时的邮件地址。
Key文件存储在桌面,文件名称为:CertificateSigningRequest.certSigningRequest
2. 创建证书(在苹果开发者网站上操作)
选择Apple Development:
继续后,选择上一步生成的CertificateSigningRequest.certSigningRequest 文件(桌面上)。
依次可以创建开发和生产的证书,结果如下:
三、创建标识符(Identifiers)
App ID
App ID 是由两部分构成的字符串,在预置描述文件中用于标识来自某一开发团队的一个或多个 App。App ID 有两种类型:一种是精确 App ID (用于单个 App);另一种是通配符 App ID (用于一组 App)。
精确 App ID 包含套装 ID 的完整路径。通配符 App ID 包含一个星号,以作为相应套装 ID 搜索字符串的最后一个部分。注:需要指定精确 App ID,才能将你的 App 提交至 App Store 并使用特定服务。
App ID 可识别预置描述文件中的 App。它是一个由两部分组成的字符串,用于标识来自某一开发团队的一个或多个 App。App ID 共有两类:适用于单个 App 的精确 App ID,以及适用于一组 App 的通配符 App ID。在一个 App ID 中启用的 App 功能将作为一个允许列表,为一个或多个 App 提供可用功能。你可以在创建 App ID 时启用 App 功能,也可以稍后修改这些设置。精确 App ID 将默认启用“App 内购买项目”功能。自 Xcode 11.4 起,可以使用同一 App ID 来构建 iOS、macOS、Apple tvOS 和 watchOS App。
1. 创建新的Identifiers
选择 APP IDs
选择App
完成后:
四、描述文件(Profiles)
Profiles用于将 Certificates、Identifiers、Devices结合起来,形成一个描述证书、标识符的描述统一文件。
1. 创建一个开发描述文件
继续后:
选择上一步创建的标识符继续
选择前面创建好的证书继续
选择好需要连接的手机,继续
输入描述文件名称,然后生成
2. 创建一个生产(上架)描述文件
继续,操作方法和生成开发描述文件一致!
五、本地安装证书文件
将第一步创建证书中创建的证书文件下载到本地。将证书下载到 Mac,然后双击 .cer 文件安装到钥匙串访问中。确保将私钥和公钥的备份副本保存在安全的地方。
下载下来的文件按为:development.cer,双击 .cer 文件安装到钥匙串访问中。
安装时出现这样的错误 -25294:
经过查询资料发现需要安装Apple全球开发者关系认证中间证书WWDRCA*.cer。
Apple证书列表:Apple PKI - Apple
红色部分为我们需要的证书:
我们可以下载G3,有效期到2030-02-20。下载下来后点击安装。安装完成后在继续安装distribution.cer 和 development.cer 证书,最后安装成功
注意:
经过测试,下载G6时不可以的,G3是可以的,不知道为什么,这里注意下。
六、Xcode配置
1. 创建账号:
打开XCode(我的版本: 14.3.1),选择settings
然后选择增加账号:
2. 管理证书(Manage Certificates)
选择admin 然后按下 Manage Certificates,可以管理(查看)证书,证书如果已经在苹果后台账号设置好,这里就会自动显示出来。
特别注意:
如果后台已经设置好证书,而且上面已经显示有了,就不要在按做下脚的 + ,否则就会重复安装同一个证书,这样就会导致app签名失败。
万一出现了上述情况,解决办法是:
1. 在苹果账号后台删除重复的证书;
2. 在本地钥匙串中删除重复的证书;
3. 重新打开xcode查看就正常了。