本文介绍最新的最全的如何制作 iOS 证书(开发证书、发布证书、推送证书,企业证书)和iphone配置描述文件,用于iphone和ipad开发构建 IOS App 应用。如果嫌麻烦,可以使用懒人工具appuploader制作证书和描述文件。
文件类型
证书或文件 | 对应的苹果官方名称 | 说明 |
---|---|---|
消息推送证书 | Apple Push Notification service SSL Certificate | 一种用于在 iOS 设备上推送消息的证书,主要用于支持应用的消息推送功能。 |
应用发布证书 | Apple Distribution Certificate | 用于对您的应用程序签名,以便提交给 App Store 或进行 TestFlight 测试。 |
配置描述文件 | Provisioning Profiles | 包含主应用描述文件和应用拓展描述文件。 |
制作以上文件或证书后,上传至开发者平台或者xcode才能进行构建打包,继而完成 TestFlight 测试 和 App Store 上架 等工作。
准备工作
- 注册并加入 Apple Developer Program,才能进行 TestFlight 测试或在 App Store 上架应用。
- 若您非技术开发人员,建议准备一台 macOS 电脑,这将使您更容易的完成证书制作过程,没有mac或者非技术推荐使用 appuploader,可以在windows和mac电脑上制作证书,其对证书制作过程进行了简化,比较容易操作。
- 按照下文描述,创建应用 App ID 、App Group ID 和 应用扩展 App IDs 。创建这些 IDs 是您后续制作构建打包所必需的 消息推送证书 、配置描述文件 的前提。
创建主应用 App ID
-
登录Apple Developer,选择 Certificates, Identifiers & Profiles 选项。
-
选择Identifiers ,单击 + 。
-
选择App IDs ,单击 Continue 。
-
在Description 栏填写描述,例如您的应用英文名称。在 Bundle ID 栏选择 Explicit ,并填写您的应用包名。
Capabilities 是 App ID 配置的重要一环,您可以参考下文 ++开启并配置++ ++App IDs++ ++能力(++ ++Capabilities++ ++)++ 了解详情。在本步骤可以暂时略过。
- 单击Continue ,确认信息无误后单击 Register。
如果系统提示 An App ID with Identifier 'com.xxx.xxx' is not available. Please enter a different string. ,说明包名已被占用。请单击 Back,返回上一步,更换包名。

注册填写的 Bundle ID 用于开发者平台设置的 App 包名,bundle id一个字符都不要填写错误,否则制作出的消息推送证书、应用描述文件等是无法在开发者平台使用的。
- 如果没有错误提示,App ID 显示在列表中,那么 App ID 创建完成。
创建 App Group ID
创建 App Group ID,是因为应用扩展程序(如 Siri 控制、Widget 插件等)和主应用分别运行在不同的进程中,并且拥有不同的沙盒。这意味着,应用扩展程序无法直接访问主应用的数据和资源。
为了解决这个问题,苹果开发了 App Group 功能。它允许应用扩展程序和主应用共享一个数据容器,这样应用扩展程序就可以访问主应用的数据和资源了。
-
选择Identifiers ,单击 + 。
-
选择App Groups ,单击 Continue 。
-
在Description 栏填写描述,例如您的应用英文名称。在 Identifier 填写 Group ID。
Group ID 由您的包名加上一个 group 前缀组成,假设您的包名为 com.kxdang.app,那么您的 Group ID 就是 group.com.kxdang.app
- 单击Continue ,确认信息无误后单击 Register。
如果系统提示 An Application Group with Identifier 'group.xxx.xxx.xxx' is not available. Please enter a different string. ,说明该 Identifier 已被占用。请单击 Back ,返回上一步,更换 Identifier。
注册填写的 Identifier 的内容仅能是您 ++上一步++ 创建的 App ID 加上了 group 前缀。例如您上一步创建的 App ID 为 com.kxdang.app,那么当前创建的 Group ID Identifier 就只能是 group.com.kxdang.app。
- 如果没有错误提示,App Group ID 显示在列表中,那么 App Group ID 创建完成。
创建应用扩展 App IDs
IOS App 提供了丰富可选扩展功能与服务,这些功能如 Siri 控制、Widget 插件等在 iOS 中需要通过 应用扩展程序( App Extension ) 的方式来实现。
每个应用扩展都需要创建独立的 App ID ,其创建过程与主应用的 App ID 类似,可参考 ++创建主应用++ ++App ID++ 步骤进行创建。但需要注意,应用扩展的 Bundle ID 需要符合以下规则:
- Bundle ID 是用来唯一标识一个应用扩展程序的字符串。它必须是一个有效的域名,并且不能与其他应用的 Bundle ID 重复。
- Bundle ID 必须与应用扩展程序所属的主应用的 Bundle ID 前缀相同。例如,如果主应用的 Bundle ID 是kxdang.appname,则应用扩展程序的 Bundle ID 应该以 com.kxdang.appname 开头,类似com.kxdang.appname.extentionname。
以下是一组推荐的 app id 命名规则,可做参考
应用扩展配置描述文件 | 建议的 App ID(假设您主应用的 App ID 为 com.kxdang.app) | 备注 |
---|---|---|
推送服务扩展 | com.kxdang.app.notice | - |
Siri Intent 扩展 | com.kxdang.app.intent | - |
Siri IntentUI 扩展 | com.kxdang.app.intentui | - |
设备、场景 WidgeKit | com.kxdang.app.controlWidgetExtension | iOS 17 及以上版本才能生效 |
设备操作 Widget 扩展 | com.kxdang.app.widgetdevice | 在 iOS 17 及以下版本生效,iOS 18 及以上版本无效 |
场景业务 Widget 扩展 | com.kxdang.app.widgetscene | 在 iOS 17 及以下版本生效,iOS 18 及以上版本无效 |
语音控制 Widget 扩展 | com.kxdang.app.widgetspeech | 在 iOS 14.1 及以上版本才能生效 |
Watch App | com.kxdang.app.watchkitapp | - |
Watch App 扩展 | com.kxdang.app.watchkitapp.watchkitextension | - |
Matter 功能扩展 | com.kxdang.app.matter | iOS 16.1 支持 Matter,一个新的智能家居连接标准,让各种配件能够跨平台协同工作,为顾客带来更多的选择和更高的互操作性 |
开启并配置 App IDs 能力(Capabilities)
创建 主应用 App ID 和 应用扩展 App IDs 的过程中,您应该已经注意到页面下方的 Capabilities 选项卡了。现在,您需要配置这些 能力 (Capabilities) 以匹配您 iphone App 的需求。App ID 中的 Capabilities 指的是应用的能力,也就是应用可以使用哪些苹果提供的服务和功能。
每个 App ID 都有一个相应的 Capabilities 列表,用来描述应用的能力。例如,您可以在 Capabilities 中启用应用的推送通知功能,让应用能够发送推送通知。
通过设置 Capabilities,您可以控制应用的能力,确保应用能够正常使用服务和功能,并且不会超出您设置的权限。
首先,您可以从简单的入手,先来配置您刚刚创建的 应用扩展 App IDs 的能力(Capabilities)。
第一步:开启并配置应用扩展的 App Group 能力
所有的 应用扩展 App IDs 都必须也只需要配置 App Groups 能力,请您务必重复以下步骤以完成所有您已创建的 应用扩展 App IDs 的 App Groups 能力配置工作。
-
在Identifier 列表中选择要配置的 应用扩展 App ID ,并单击打开详情页。
-
在Capabilities 选项卡中,选中 App Groups 能力选项。
-
单击App Groups 右侧的 Configure 按钮,在弹出框中选中您刚刚创建的 App Group ID ,单击 Continue 以提交。
-
确认App Groups 右侧 Notes 已变为提示 Enabled App Groups(1) ,单击右上角 Save 按钮以保存本次 App Groups 能力配置。
-
重复步骤1,直至您完成所有已创建 应用扩展 App IDs 的 App Groups 配置工作。
第二步:开启并配置主应用所需能力
您的 IOS App 应用的能力配置分为 基础能力 与 额外能力 两部分:
- 基础能力 是所有ios App 都可以拥有的 能力 (Capabilities)。
- 额外能力 与您开通的额外服务有关,在配置 额外能力 时请参考您实际已开通的服务等内容。
首先,您可以从 基础能力 的配置开始:
- 在Identifier 列表中选择要配置的 主应用 App ID,并单击打开详情页。参照以下表格逐个开启能力并做必要的配置:
能力(Capability) | 开启能力 | 配置方法 |
---|---|---|
Access Wi-Fi Information | - | |
App Groups | 单击右侧的 Configure 按钮,在弹出框中选中您刚刚创建的 App Group ID ,单击 Continue 以提交。 | |
Associated Domains | - | |
AutoFill Credential Provider | - | |
Push Notifications | - |
- 完成以上基础能力 开启与配置后,单击页面右上角的 Save 按钮,保存此次 主应用 App ID 的能力变更。
接下来,您可以处理 额外能力 的配置,您需要确认您的IOS App 是否满足具体能力的开启条件(某些能力实现需要与硬件相配合):
- 若您的 IOS App 开启了AP 热点自动连接 功能,您需要确保为您的 App ID 勾选对应的 热点 (Hotspot) 能力:
- 若您的 IOS App 开启了第三方登录 功能,按照苹果 App Store 审核要求,您必须同时开启 苹果登录( Sign In with Apple ) 功能,这需要您为 App ID 勾选对应能力:
- 若您的 IOS App 拥有或购买了++Siri++ ++介入++ 功能,则您需要为 App ID 勾选 SiriKit 能力:
- 若您的 IOS App 选择支持EZ 配网( Wi-Fi 快速配网) ,请参考 ++为++ ++Wi-Fi++ ++快连配网(++ ++EZ++ ++配网)功能申请应用权限++ 。申请到 Multicast Networking 能力后,在您的 App ID 中选中 Additional Capabilities 选项卡找到它并将其开启:
Additional Capabilities 中的能力是需要向苹果申请才可批注使用的。默认情况下,App ID 详情页中不会展示 Additional Capabilities 选项卡,直到您获批使用某项能力(如 Multicast Networking)后,这个选项卡才会展示出来。
- Critical Alerts能力允许您向处于静音或开启勿扰模式的 iOS 设备推送重要提醒
Critical Alerts 能力需要您首先前往苹果的 ++Request a Critical Alert Notifications Entitlement++ 页面填写能力申请。能力申请通过后,在您的 App ID 中选中 Additional Capabilities 选项卡找到它并将其开启:
- 若您的 IOS App 需要支持Matter 设备 的配网、控制和共享功能,则您需要为 App ID 勾选 Matter Allow Setup Payload 能力:
根据您的应用场景完成以上 额外能力 开启与配置后,单击页面右上角的 Save 按钮,保存此次 主应用 App ID 的能力变更。
制作消息推送与应用发布证书
您需要按照以下流程制作两种证书并上传至开发者平台或者导入Xcode,以完成您 IOS App 的构建配置流程。如果使用appuploader,点击添加证书,选择类型点击确定即可,下面整个证书制作过程都可以略过了。如果使用apple官方的方式制作消息推送与应用发布证书的流程是相似的,主要有以下三个步骤:
- 在您的本地环境(macOS 电脑或其他安装了 OpenSSL 1.x 系列版本软件的操作系统)制作CSR (Certificate Signing Request) 证书签名请求文件。
- 在苹果开发者平台上传CSR 文件并下载苹果颁发的证书到本地。
- 将证书与私钥合并导出p12 文件 并上传至涂鸦开发者平台。
创建证书请求 CSR 文件
创建 CSR 文件有两种方式,任选其一即可:
- 使用 macOS 电脑创建(推荐)
- 通过命令行终端使用 OpenSSL 创建
若您有 macOS 电脑,强烈推荐您使用它以图形化的方式完成 CSR 文件创建工作。若您身边没有 macOS 电脑或您为一名技术人员,您可以通过命令行终端使用 OpenSSL (必须为 1.x 系列版本,推荐 1.1 版本) 来完成 CSR 文件创建工作。
方式一:使用 macOS 电脑创建
在 macOS 电脑上创建一个 CSR(证书签名请求)文件,您可以使用 钥匙串访问( Keychain Access ) 应用程序。
-
在您的 macOS 电脑上打开应用程序 文件夹,然后找到 实用工具 文件夹。在 实用工具 文件夹中,打开 钥匙串访问 应用程序。
-
在钥匙串访问 应用程序中,单击菜单栏 钥匙串访问 > 证书管理 > 从证书颁发机构请求证书 。
-
用户电子邮件地址 填写您的常用邮箱,常用名称 填写您的名称,选择 存储到磁盘 ,然后单击 继续 。
-
保存certSigningRequest 文件至本地,完成 CSR 文件创建。
方式二:使用命令行终端创建
要使用终端方式创建 CSR 文件 ,请您先在本地环境(Windows 或 Linux 发行版)安装 OpenSSL 。在您当前系统中打开终端(Windows PowerShell 或 Linux Terminal 等)应用,参考以下步骤完成 私钥 与 CSR 文件 的创建:
- 使用以下命令创建一个私钥:
-
openssl version should be 1.x series, 3.x not compatible
- openssl genrsa -out private.key 2048
- 使用以下命令生成CSR 文件:
-
openssl version should be 1.x series, 3.x not compatible
- openssl req -new -key private.key -out example.csr -subj "/CN=Your Name/[email protected]"
在这条命令中,您需要将 Your Name 替换为您的名称,将 [email protected] 替换为您的电子邮件地址。
- 使用以下命令将 CSR 文件转换为苹果平台使用的certSigningRequest 格式:
-
openssl version should be 1.x series, 3.x not compatible
- openssl req -in example.csr -out CertificateSigningRequest.certSigningRequest
在命令行终端使用 OpenSSL 创建 CSR 文件时,请妥善保管好第一步 生成的 private.key 私钥文件,在后续导出 p12 格式 证书的过程中它是必须的。
制作应用发布证书(.p12 格式)
如果您的开发者账号下有多个 IOS App 应用,可以使用同一个发布证书,不需要多次创建。多次创建会带来不必要的麻烦。
-
打开Certificates, Identifiers & Profile 页面,选择 Certificates ,单击 + 。
-
选择iOS Distribution ( App Store and Ad Hoc ) ,单击 Continue 。
如果无法选择,提示证书数量超过限制,请返回上一页,删除多余的证书。证书只在应用构建和上传阶段会使用,因此删除证书不会影响已上架应用的正常使用。

-
单击Choose File ,选择刚才生成的 CSR 文件,单击 Continue 。
-
单击Download ,下载 cer 文件到本地
-
将证书导出为 p12 格式,这里会有两种导出流程,分别对应您前面创建 CSR 文件的方式:
- 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:
- 双击下载的cer (名称您可以自定义) 文件,它将会自动导入到 钥匙串访问 应用中。
- 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:
.cer 文件需要导入到钥匙串之后,才能导出为 .p12 文件,请继续完成下一步。
-
打开钥匙串访问 应用,在 种类 栏目选择 我的证书 ,找到导入的证书,右键选择 导出证书 。
-
存储为应用发布证书 .p12 ,文件格式选择 个人信息交换 (.p12) ,单击 存储 。
-
为应用发布证书创建一个密码,并记录下来。单击好 ,保存应用发布证书。
- 方式二:若您在终端中使用 OpenSSL 创建 CSR,使用命令将cer 证书和私钥 key 合并导出为 p12 格式文件:
# openssl version should be 1.x series, 3.x not compatible
openssl x509 -inform DER -in ios_distribution.cer -out ios_distribution.pem
openssl pkcs12 -export -out cert.p12 -inkey private.key -in ios_distribution.pem
在这条命令中,cert.p12 为您想要导出的 p12 文件名,private.key 为您在 CSR 文件创建过程中生成的私钥文件,而 ios_distribution.cer 为您从苹果开发者平台下载的证书文件名。
在执行命令时,系统会提示您输入密码。您需要输入您希望为 p12 文件设置的密码,并再次输入以确认。
制作消息推送证书(.p12 格式)
与应用发布证书不同,如果您的账号下存在多个 IOS App 应用,那么每个应用都需要创建自己的消息推送证书。
-
打开Certificates, Identifiers & Profile 页面,选择 Certificates ,单击 + 。
-
选择Apple Push Notification service SSL (Sandbox & Production) ,单击 Continue 。
-
在App ID 栏选择应用的包名,单击 Continue 。
-
单击Choose File ,选择刚才生成的 CSR 文件,单击 Continue 。
-
单击Download ,下载 cer 文件到本地
-
将证书导出为 p12 格式,这里会有两种导出流程,分别对应您前面创建 CSR 文件的方式:
- 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:
- 双击下载的cer 文件,它将会自动导入到 钥匙串访问 应用中。
- 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:
.cer 文件需要导入到钥匙串之后,才能导出为 .p12 文件,请继续完成下一步。
-
打开钥匙串访问 应用,在 种类 栏目选择 我的证书 ,找到导入的证书,右键选择 导出证书 。
-
存储为应用推送证书 .p12 (名称您可以自定义) ,文件格式选择 个人信息交换 (.p12) ,单击 存储 。
-
为应用发布证书创建一个密码,并记录下来。单击好 ,保存应用发布证书。
- 方式二:若您在终端中使用 OpenSSL 创建 CSR,使用下面命令将cer 证书和私钥 key 合并导出为 p12 格式文件:
# openssl version should be 1.x series, 3.x not compatible
openssl x509 -inform DER -in aps.cer -out aps.pem
openssl pkcs12 -export -out push.p12 -inkey private.key -in aps.pem
在这条命令中,push.p12 为您想要导出的 p12 文件名,private.key 为您在 CSR 文件创建过程中生成的私钥文件,而 aps.cer 为您从苹果开发者平台下载的证书文件名。
在执行命令时,系统会提示您输入密码。您需要输入您希望为 p12 文件设置的密码,并再次输入以确认。
制作配置描述文件
制作主应用描述文件(.mobileprovision 格式)
-
打开Certificates, Identifiers & Profile 页面,选择 Profiles ,单击 + 。
-
选择App Store ,单击 Continue 。
-
选择您开始创建的主应用的app id,单击 Continue 。
-
选择之前创建的应用发布证书,单击 Continue 。
如果页面中出现多个证书,可以通过证书过期时间来区分。证书有效期为 1 年。如果无法区分,建议返回至证书列表页,删除多余的证书,重新开始此步骤。如果此步骤选择错误,将会导致应用无法构建。
-
在Provisioning Profile Name 处可填写您的 App 名称,单击 Generate 。
-
单击Download ,下载配置文件,完成文件创建。
制作应用扩展描述文件(.mobileprovision 格式)
制作应用扩展配置描述文件的流程与上一步主应用配置描述文件的流程类似,需要注意的是,在 ++第++ ++3++ ++步++ 选择 App ID 时,要选择您想要创建的应用扩展 App IDs,文件名称参考创建应用扩展 App IDs 阶段的 ++配置描述文件表格++。
您在应用扩展 App IDs 阶段创建的每一个 ID,都对应需要创建一个应用扩展配置描述文件。
导入证书和描述文件到xcode
下载到p12和描述文件后导入xcode的方法:双击p12文件,然后输入p12文件的密码,双击.mobileprovision文件,如果安装了xcode,会导入到xcode中。
上传证书和配置文件到开发者平台
- 登录打包平台,选择对应的app上传证书和描述文件。
- 在iOS 证书 表单中按照提示上传应用发布证书、密码以及所有配置描述文件。
- 在iOS 消息推送 表单中按照提示上传消息推送证书、密码。
注意事项
- 应用证书在上传完成之后,需要重新构建 App 才会生效。
- 消息推送证书有效期为 1 年,过期后 App 推送会无法使用。重新制作并上传证书即可,不需要重新构建 App。
- 您的苹果开发者账号每年需要续费,否则到期后应用市场会无法搜索到 App。续费以后就会重新显示。
- 自 2020 年 4 月起,使用第三方登录功能的 App 必须包含苹果登录功能才能够上架。更多详情,请参考《苹果官方文档》++有关++ 通过 Apple 登录 ++的指南更新++。
- 从15 版本开始,因为部分第三方 SDK 版本更新,您需要开启Associated Domains 功能,才能够正常构建。
- 在 App 端使用 Apple ID 登录时,若提示未完成注册 ,只需再次登录 Apple Developer,并在对应的 App IDs 下重新勾选(取消选中后先保存一次) Capabilities 列表中的 Sign In with Apple 选项,保存设置。