制作 iOS 证书与描述文件

更新时间:2023-09-15 09:10:59下载pdf

本文介绍了如何制作以下几种 iOS 证书或文件,您在涂鸦 IoT 开发平台构建 OEM App 应用时需要上传。

文件类型

证书或文件
对应的苹果官方名称 说明
消息推送证书 Apple Push Notification service SSL Certificate 一种用于在 iOS 设备上推送消息的证书,主要用于支持应用的消息推送功能。
应用发布证书 Apple Distribution Certificate 用于对您的应用程序签名,以便提交给 App Store 或进行 TestFlight 测试。
配置描述文件 Provisioning Profiles 包含主应用描述文件和应用拓展描述文件。

制作以上文件或证书后,上传至涂鸦 IoT 开发平台,您的 OEM iOS App 才能进行构建打包,继而完成 TestFlight 测试App Store 上架 等工作。

准备工作

  1. 注册并加入 Apple Developer Program,才能进行 TestFlight 测试或在 App Store 上架应用。
  2. 若您非技术开发人员,建议准备一台 macOS 电脑,这将使您更容易的完成证书制作过程。
  3. 按照下文描述,创建 应用 App IDApp Group ID应用扩展 App IDs。创建这些 IDs 是您后续制作构建打包所必需的 消息推送证书配置描述文件 的前提。

创建主应用 App ID

  1. 登录 Apple Developer,选择 Certificates, Identifiers & Profiles 选项。

    制作 iOS 证书与描述文件
  2. 选择 Identifiers,单击 +

    制作 iOS 证书与描述文件
  3. 选择 App IDs,单击 Continue

    制作 iOS 证书与描述文件
  4. Description 栏填写描述,例如您的应用英文名称。在 Bundle ID 栏选择 Explicit,并填写您的应用包名。

    制作 iOS 证书与描述文件

    CapabilitiesApp ID 配置的重要一环,您可以参考下文 开启并配置 App IDs 能力(Capabilities) 了解详情。在本步骤可以暂时略过。

  5. 单击 Continue,确认信息无误后单击 Register

    如果系统提示 An App ID with Identifier ‘com.xxx.xxx’ is not available. Please enter a different string.,说明包名已被占用。请单击 Back,返回上一步,更换包名。

    制作 iOS 证书与描述文件

    注册填写的 Bundle ID 要与涂鸦 IoT 开发平台中您设置的 OEM App 包名 一致,否则制作出的消息推送证书、应用描述文件等是无法在 IoT 开发平台使用的。

  6. 如果没有错误提示,App ID 显示在列表中,那么 App ID 创建完成。

创建 App Group ID

创建 App Group ID,是因为应用扩展程序(如 Siri 控制、Widget 插件等)和主应用分别运行在不同的进程中,并且拥有不同的沙盒。这意味着,应用扩展程序无法直接访问主应用的数据和资源。

为了解决这个问题,苹果开发了 App Group 功能。它允许应用扩展程序和主应用共享一个数据容器,这样应用扩展程序就可以访问主应用的数据和资源了。

  1. 选择 Identifiers,单击 +

    制作 iOS 证书与描述文件
  2. 选择 App Groups,单击 Continue

    制作 iOS 证书与描述文件
  3. Description 栏填写描述,例如您的应用英文名称。在 Identifier 填写 Group ID

    Group ID 由您的包名加上一个 group 前缀组成,假设您的包名为 com.example.app,那么您的 Group ID 就是 group.com.example.app

    制作 iOS 证书与描述文件
  4. 单击 Continue,确认信息无误后单击 Register

    如果系统提示 An Application Group with Identifier ‘group.xxx.xxx.xxx’ is not available. Please enter a different string.,说明该 Identifier 已被占用。请单击 Back,返回上一步,更换 Identifier。

    制作 iOS 证书与描述文件

    注册填写的 Identifier 的内容仅能是您 上一步 创建的 App ID 加上了 group 前缀。例如您上一步创建的 App IDcom.example.app,那么当前创建的 Group ID Identifier 就只能是 group.com.example.app

  5. 如果没有错误提示,App Group ID 显示在列表中,那么 App Group ID 创建完成。

创建应用扩展 App IDs

涂鸦 OEM App 提供了丰富可选高级功能与增值服务,这些功能如 Siri 控制、Widget 插件等在 iOS 中需要通过 应用扩展程序(App Extension) 的方式来实现。

每个应用扩展都需要创建独立的 App ID,其创建过程与主应用的 App ID 类似,可参考 创建主应用 App ID 步骤进行创建。但需要注意,应用扩展的 Bundle ID 需要符合以下规则:

  • Bundle ID 是用来唯一标识一个应用扩展程序的字符串。它必须是一个有效的域名,并且不能与其他应用的 Bundle ID 重复。
  • Bundle ID 必须与应用扩展程序所属的主应用的 Bundle ID 前缀相同。例如,如果主应用的 Bundle ID 是 com.companyname.appname,则应用扩展程序的 Bundle ID 应该以 com.companyname.appname 开头。

请结合您 涂鸦 IoT 开发平台iOS 证书配置页面 所提示需要上传的 配置描述文件 表单项,参考下方表格创建对应的应用扩展 App IDs

应用扩展配置描述文件 建议的 App ID(假设您主应用的 App ID 为 com.example.app) 备注
推送服务扩展 com.example.app.notice -
Siri Intent 扩展 com.example.app.intent -
Siri IntentUI 扩展 com.example.app.intentui -
设备操作 Widget 扩展 com.example.app.widgetdevice -
场景业务 Widget 扩展 com.example.app.widgetscene -
语音控制 Widget 扩展 com.example.app.widgetspeech -
Watch App com.example.app.watchkitapp -
Watch App 扩展 com.example.app.watchkitapp.watchkitextension -
Matter 功能扩展 com.example.app.matter 涂鸦 IoT 开发平台暂不支持自助开通 Matter 功能,请提交 技术支持工单 联系涂鸦开通。

开启并配置 App IDs 能力(Capabilities)

创建 主应用 App ID应用扩展 App IDs 的过程中,您应该已经注意到页面下方的 Capabilities 选项卡了。现在,您需要配置这些 能力(Capabilities) 以匹配您 OEM App 的需求。App ID 中的 Capabilities 指的是应用的能力,也就是应用可以使用哪些苹果提供的服务和功能。

每个 App ID 都有一个相应的 Capabilities 列表,用来描述应用的能力。例如,您可以在 Capabilities 中启用应用的推送通知功能,让应用能够发送推送通知。

通过设置 Capabilities,您可以控制应用的能力,确保应用能够正常使用服务和功能,并且不会超出您设置的权限。

首先,您可以从简单的入手,先来配置您刚刚创建的 应用扩展 App IDs 的能力(Capabilities)。

第一步:开启并配置应用扩展的 App Group 能力

所有的 应用扩展 App IDs 都必须也只需要配置 App Groups 能力,请您务必重复以下步骤以完成所有您已创建的 应用扩展 App IDsApp Groups 能力配置工作。

  1. Identifier 列表中选择要配置的 应用扩展 App ID,并单击打开详情页。

    制作 iOS 证书与描述文件
  2. Capabilities 选项卡中,选中 App Groups 能力选项。

    制作 iOS 证书与描述文件
  3. 单击 App Groups 右侧的 Configure 按钮,在弹出框中选中您刚刚创建的 App Group ID,单击 Continue 以提交。

    制作 iOS 证书与描述文件
  4. 确认 App Groups 右侧 Notes 已变为提示 Enabled App Groups(1),单击右上角 Save 按钮以保存本次 App Groups 能力配置。

    制作 iOS 证书与描述文件
  5. 重复 步骤 1,直至您完成所有已创建 应用扩展 App IDsApp Groups 配置工作。

第二步:开启并配置主应用所需能力

您的 IoT OEM App 应用的能力配置分为 基础能力额外能力 两部分:

  • 基础能力 是所有涂鸦 IoT OEM App 所必需的 能力(Capabilities)
  • 额外能力 与您在涂鸦 IoT 平台开通的增值等服务有关,在配置 额外能力 时请参考您实际已开通的服务等内容。

首先,您可以从 基础能力 的配置开始:

  1. Identifier 列表中选择要配置的 主应用 App ID,并单击打开详情页。参照以下表格逐个开启能力并做必要的配置:

    能力(Capability) 开启能力
    配置方法
    Access Wi-Fi Information 制作 iOS 证书与描述文件 -
    App Groups 制作 iOS 证书与描述文件 单击右侧的 Configure 按钮,在弹出框中选中您刚刚创建的 App Group ID,单击 Continue 以提交。
    Associated Domains 制作 iOS 证书与描述文件 -
    AutoFill Credential Provider 制作 iOS 证书与描述文件 -
    Push Notifications 制作 iOS 证书与描述文件 -
  2. 完成以上 基础能力 开启与配置后,单击页面右上角的 Save 按钮,保存此次 主应用 App ID 的能力变更。

接下来,您可以处理 额外能力 的配置,您需要确认您的 OEM App 是否满足具体能力的开启条件(某些能力实现需要与硬件相配合):

  • 若您的 OEM App 开启了 第三方登录 功能,按照苹果 App Store 审核要求,您必须同时开启 苹果登录(Sign In with Apple) 功能,这需要您为 App ID 勾选对应能力:

    制作 iOS 证书与描述文件
  • 若您的 OEM App 拥有或购买了 Siri 介入 功能,则您需要为 App ID 勾选 SiriKit 能力:

    制作 iOS 证书与描述文件
  • 若您的 OEM App 选择支持 EZ 配网(Wi-Fi 快速配网),请参考 为 Wi-Fi 快连配网(EZ 配网)功能申请应用权限。申请到 Multicast Networking 能力后,在您的 App ID 中选中 Additional Capabilities 选项卡找到它并将其开启:

    制作 iOS 证书与描述文件

    Additional Capabilities 中的能力是需要向苹果申请才可批注使用的。默认情况下,App ID 详情页中不会展示 Additional Capabilities 选项卡,直到您获批使用某项能力(如 Multicast Networking)后,这个选项卡才会展示出来。

  • Critical Alerts 能力允许您向处于静音或开启勿扰模式的 iOS 设备推送重要提醒,请 提交工单 咨询您的 IoT OEM App 是否需要开启此项能力。

    Critical Alerts 能力需要您首先前往苹果的 Request a Critical Alert Notifications Entitlement 页面填写能力申请。能力申请通过后,在您的 App ID 中选中 Additional Capabilities 选项卡找到它并将其开启:

    制作 iOS 证书与描述文件
  • 若您的 OEM App 需要支持 Matter 设备 的配网、控制和共享功能,则您需要为 App ID 勾选 Matter Allow Setup Payload 能力:

    制作 iOS 证书与描述文件

    涂鸦 IoT 开发平台暂不支持自助开通 Matter 功能,请提交 技术支持工单 联系涂鸦开通。

根据您的应用场景完成以上 额外能力 开启与配置后,单击页面右上角的 Save 按钮,保存此次 主应用 App ID 的能力变更。

制作消息推送与应用发布证书

您需要按照以下流程制作两种证书并上传至涂鸦 IoT 开发平台,以完成您 OEM App 的构建配置流程。制作消息推送与应用发布证书的流程是相似的,主要有以下三个步骤:

  1. 在您的本地环境(macOS 电脑或其他安装了 OpenSSL 1.x 系列版本软件的操作系统)制作 CSR (Certificate Signing Request) 证书签名请求文件。
  2. 在苹果开发者平台上传 CSR 文件并下载苹果颁发的证书到本地。
  3. 将证书与私钥合并导出 p12 文件 并上传至涂鸦 IoT 开发平台。

创建证书请求 CSR 文件

创建 CSR 文件有两种方式,任选其一即可:

  • 使用 macOS 电脑创建(推荐

  • 通过命令行终端使用 OpenSSL 创建

    若您有 macOS 电脑,强烈推荐您使用它以图形化的方式完成 CSR 文件创建工作。若您身边没有 macOS 电脑或您为一名技术人员,您可以通过命令行终端使用 OpenSSL (必须为 1.x 系列版本,推荐 1.1 版本) 来完成 CSR 文件创建工作。

方式一:使用 macOS 电脑创建

在 macOS 电脑上创建一个 CSR(证书签名请求)文件,您可以使用 钥匙串访问(Keychain Access) 应用程序。

  1. 在您的 macOS 电脑上打开 应用程序 文件夹,然后找到 实用工具 文件夹。在 实用工具 文件夹中,打开 钥匙串访问 应用程序。

  2. 钥匙串访问 应用程序中,单击菜单栏 钥匙串访问 > 证书管理 > 从证书颁发机构请求证书

    制作 iOS 证书与描述文件
  3. 用户电子邮件地址 填写您的常用邮箱,常用名称 填写您的名称,选择 存储到磁盘,然后单击 继续

    制作 iOS 证书与描述文件
  4. 保存 CertificateSigningRequest.certSigningRequest 文件至本地,完成 CSR 文件创建。

方式二:使用命令行终端创建

要使用终端方式创建 CSR 文件,请您先在本地环境(Windows 或 Linux 发行版)安装 OpenSSL。在您当前系统中打开终端(Windows PowerShell 或 Linux Terminal 等)应用,参考以下步骤完成 私钥CSR 文件 的创建:

  1. 使用以下命令创建一个 私钥

    # openssl version should be 1.x series, 3.x not compatible
    openssl genrsa -out private.key 2048
    
  2. 使用以下命令生成 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/emailAddress=you@example.com"
    

    在这条命令中,您需要将 Your Name 替换为您的名称,将 you@example.com 替换为您的电子邮件地址。

  3. 使用以下命令将 CSR 文件转换为苹果平台使用的 CertificateSigningRequest.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 格式)

如果您的涂鸦开发者账号下有多个 OEM App 应用,可以使用同一个发布证书,不需要多次创建。多次创建会带来不必要的麻烦。

  1. 打开 Certificates, Identifiers & Profile 页面,选择 Certificates,单击 +

    制作 iOS 证书与描述文件
  2. 选择 iOS Distribution(App Store and Ad Hoc),单击 Continue

    如果无法选择,提示证书数量超过限制,请返回上一页,删除多余的证书。证书只在应用构建和上传阶段会使用,因此删除证书不会影响已上架应用的正常使用。

    制作 iOS 证书与描述文件
  3. 单击 Choose File,选择刚才生成的 CSR 文件,单击 Continue

    制作 iOS 证书与描述文件
  4. 单击 Download,下载 ios_distribution.cer 文件到本地

    制作 iOS 证书与描述文件
  5. 将证书导出为 p12 格式,这里会有两种导出流程,分别对应您前面创建 CSR 文件的方式:

    • 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:

      1. 双击下载的 ios_distribution.cer(名称您可以自定义) 文件,它将会自动导入到 钥匙串访问 应用中。

        .cer 文件需要导入到钥匙串之后,才能导出为 .p12 文件,请继续完成下一步。

      2. 打开 钥匙串访问 应用,在 种类 栏目选择 我的证书,找到导入的证书,右键选择 导出证书

        制作 iOS 证书与描述文件
      3. 存储为 应用发布证书.p12,文件格式选择 个人信息交换(.p12),单击 存储

        制作 iOS 证书与描述文件
      4. 为应用发布证书创建一个密码,并记录下来。单击 ,保存应用发布证书。

        制作 iOS 证书与描述文件
    • 方式二:若您在终端中使用 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 格式)

与应用发布证书不同,如果您的账号下存在多个 OEM App 应用,那么每个应用都需要创建自己的消息推送证书。

  1. 打开 Certificates, Identifiers & Profile 页面,选择 Certificates,单击 +

    制作 iOS 证书与描述文件
  2. 选择 Apple Push Notification service SSL (Sandbox & Production),单击 Continue

    制作 iOS 证书与描述文件
  3. App ID 栏选择应用的包名,单击 Continue

    制作 iOS 证书与描述文件
  4. 单击 Choose File,选择刚才生成的 CSR 文件,单击 Continue

    制作 iOS 证书与描述文件
  5. 单击 Download,下载 aps.cer 文件到本地

    制作 iOS 证书与描述文件
  6. 将证书导出为 p12 格式,这里会有两种导出流程,分别对应您前面创建 CSR 文件的方式:

    • 方式一:若您使用 macOS 电脑创建 CSR,按照以下流程导出 p12:

      1. 双击下载的 aps.cer 文件,它将会自动导入到 钥匙串访问 应用中。

        .cer 文件需要导入到钥匙串之后,才能导出为 .p12 文件,请继续完成下一步。

      2. 打开 钥匙串访问 应用,在 种类 栏目选择 我的证书,找到导入的证书,右键选择 导出证书

        制作 iOS 证书与描述文件
      3. 存储为 应用推送证书.p12(名称您可以自定义),文件格式选择 个人信息交换(.p12),单击 存储

        制作 iOS 证书与描述文件
      4. 为应用发布证书创建一个密码,并记录下来。单击 ,保存应用发布证书。

        制作 iOS 证书与描述文件
    • 方式二:若您在终端中使用 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 格式)

  1. 打开 Certificates, Identifiers & Profile 页面,选择 Profiles,单击 +

    制作 iOS 证书与描述文件
  2. 选择 App Store,单击 Continue

    制作 iOS 证书与描述文件

  3. 选择您开始创建的 主应用 App ID,单击 Continue

    制作 iOS 证书与描述文件
  4. 选择之前创建的 应用发布证书,单击 Continue

    如果页面中出现多个证书,可以通过证书过期时间来区分。证书有效期为 1 年。如果无法区分,建议返回至证书列表页,删除多余的证书,重新开始此步骤。如果此步骤选择错误,将会导致应用无法构建。

    制作 iOS 证书与描述文件
  5. Provisioning Profile Name 处可填写您的 App 名称,单击 Generate

    制作 iOS 证书与描述文件
  6. 单击 Download,下载配置文件,完成文件创建。

    制作 iOS 证书与描述文件

制作应用扩展描述文件(.mobileprovision 格式)

制作应用扩展配置描述文件的流程与上一步主应用配置描述文件的流程类似,需要注意的是,在 第 3 步 选择 App ID 时,要选择您想要创建的应用扩展 App IDs,文件名称参考创建应用扩展 App IDs 阶段的 配置描述文件表格

您在应用扩展 App IDs 阶段创建的每一个 ID,都对应需要创建一个应用扩展配置描述文件。

上传证书和配置文件到涂鸦 IoT 开发平台

  1. 登录 涂鸦 IoT 开发平台 > App > OEM App,进入 iOS 证书 配置页面。
  2. iOS 证书 表单中按照提示上传应用发布证书、密码以及所有配置描述文件。
  3. iOS 消息推送 表单中按照提示上传消息推送证书、密码。

注意事项

  • 应用证书在上传完成之后,需要重新构建 App 才会生效。

  • 消息推送证书有效期为 1 年,过期后 App 推送会无法使用。重新制作并上传证书即可,不需要重新构建 App。

  • 您的苹果开发者账号每年需要续费,否则到期后应用市场会无法搜索到 App。续费以后就会重新显示。

  • 自 2020 年 4 月起,使用第三方登录功能的 App 必须包含苹果登录功能才能够上架。更多详情,请参考《苹果官方文档》有关 通过 Apple 登录 的指南更新

  • 从 v3.15 版本开始,因为部分第三方 SDK 版本更新,您需要开启 Associated Domains 功能,才能够正常构建。

  • 在 App 端使用 Apple ID 登录时,若提示 未完成注册,只需再次登录 Apple Developer,并在对应的 App IDs 下重新勾选(取消选中后先保存一次) Capabilities 列表中的 Sign In with Apple 选项,保存设置。

    制作 iOS 证书与描述文件