上次更新日期:
2023年5月24日
Apple 公证可确保 Apple 已针对恶意组件,检查了您分发的 Developer ID 签署的软件。有关 Apple 公证规则及要求的更多详细信息,请参阅分发前对 macOS 软件进行公证。
为了符合 Apple 的公证规则,InDesign 2020 已启用强化的运行时授权,该功能允许第三方增效工具加载到 InDesign,而无需对其进行代码签名。但是,增效工具开发人员通常会通过安装程序(.pkg 或 .dmg)将增效工具分发到 Web。由于 macOS 上 Apple 的网关守卫会自动隔离所有未经公证的二进制文件,因此您在运行这些增效工具安装程序时会失败。有关更多详细信息,请参阅 InDesign 和 macOS 10.15 (Catalina)。因此,即使 InDesign 增效工具不要求任何公证或代码签名,系统也需要对增效工具安装程序/二进制文件进行公证。
公证要求
- Apple Developer 帐户
- Xcode 10 或更新
- App 专用密码。以下是生成 App 专用密码的说明。
证书生成流程
- 请求证书(“钥匙串访问”菜单>“证书助理”>“从证书颁发机构请求证书”)
- 将 .certSigningRequest 文件存储到磁盘。
- 登录到 Apple Developer 门户。
- 单击证书、标识符和描述文件。
- 选取 Developer ID 应用程序以创建新证书。
- 上传步骤 1 中的 .certSigningRequest文件即可完成相应的流程。将生成的 .cer 下载到磁盘。
- 选取 Developer ID 安装程序,然后重复步骤 4-6。
- 同样,上传步骤 1 中的 .certSigningRequest文件即可完成相应的流程。将生成的 .cer 下载到磁盘。
- 双击步骤 6 和 8 中生成并下载的 .cer 证书,以将其导入到钥匙串。
.pkg 或 .dmg 文件的公证步骤
下面的示例采用了 SDK 中的 BasicDialog 样例增效工具。
# 对 .InDesignPlugin 进行编码签署
codesign --sign "Developer ID Application: <开发人员名称>" --verbose=4 --deep --force --strict BasicDialog.InDesignPlugin # 编码签署验证
codesign -dv --verbose=4 BasicDialog.InDesignPlugin - # 将上述已进行编码签署的 .InDesignPlugin 添加到包/安装程序,以建立 .pkg 或 .dmg
# 签署您的安装程序(例如 .dmg 或 .pkg)
productsign --sign "Developer ID Installer: <开发人员名称>" ./BasicDialog.pkg ./BasicDialogSigned.pkg # 编码签署验证
pkgutil --check-signature BasicDialogSigned.pkg # 发送以供公证
xcrun altool --notarize-app --primary-bundle-id "com.demo.plugin" --username "your-apple-id@xyz.com" --password "xxxx-xxxx-xxxx-xxxx" --file BasicDialogSigned.pkg # 在线检查公证状态(步骤 6 应传回请求 UID)
xcrun altool --notarization-info <Request UID> --username "your-apple-id@xyz.com" --password "xxxx-xxxx-xxxx-xxxx" # 装订已公证的文件以供离线使用
xcrun stapler staple BasicDialogSigned.pkg # 检查是否有装订器
stapler validate --verbose BasicDialogSigned.pkg