位置:首页 > Swift > macOS应用公证自动化指南:用fastlane实现提交流程

macOS应用公证自动化指南:用fastlane实现提交流程

时间:2026-08-21  |  作者:宇宙开黑者  |  阅读:0

背景介绍

在macOS系统里,为保障用户安全,Apple规定开发者对那些未通过Mac App Store分发的应用程序必须进行公证(Notarization)。

要是应用程序没经过公证,用户在运行时就会看到警告弹窗,这对用户体验可不好。

虽说开启沙箱模式的应用能直接通过App Store分发来避开这个问题,但对于需要直接分发的应用而言,公证可是必不可少的一步。

macOS 应用公证指南:使用 fastlane 实现自动化公证流程

源码

公证自动化方案

本文将介绍如何使用 fastlane 来自动化 macOS 应用的公证流程。

Fastlane 是一个广受欢迎的自动化工具,可以大大简化我们的发布流程。

准备工作

  • 安装 fastlane
brew install fastlane
  • 安装 mac build 插件
fastlane add_plugin notarize

配置步骤

1. 确认签名证书

这里需要去下载 分发证书安装!【Apple Distribution】

首先需要确认可用的签名证书。在终端执行:

security find-identity -v -p codesigning

此命令会列出所有可用的签名证书,请记录下您要使用的证书 ID。

2. 配置 App Store Connect API

  • 访问 App Store Connect
  • 创建新的 API 密钥
  • 记录以下信息:
    • Issuer ID
    • 密钥 ID
    • 下载 p8 文件(注意:只能下载一次)

3. 创建 API 密钥配置文件

创建 api_key.json 文件,内容如下:

{
 "key_id": "您的密钥 ID",
 "issuer_id": "您的 Issuer ID",
 "key": "p8文件内容(换行使用n)",
 "duration": 1200,
 "in_house": false
}

实现自动化公证

1. 应用打包

首先需要使用 fastlane 的 build_mac_app 动作来打包应用:

build_mac_app(
  scheme: "YourScheme",        # 项目名称
  export_method: "developer-id",
  clean: true,
  output_directory: "./",
  output_name: "YourAppName"
)

2. 应用公证

使用 fastlane 的 notarize 动作来完成公证:

notarize(
  package: "./YourApp.app",           # 应用路径
  bundle_id: "com.yourcompany.app",   # Bundle ID
  asc_provider: "YOUR_TEAM_ID",       # 开发者账号 Team ID
  print_log: true,
  api_key_path: "./fastlane/api_key.json"  # API 密钥文件路径
)

注意事项

  • 确保您的应用已经正确签名
  • API 密钥文件需要妥善保管,不要提交到版本控制系统
  • 公证过程可能需要几分钟时间,请耐心等待
  • 建议在正式发布前进行测试,确保公证流程正常

验证是否公证成功

spctl --assess -vv "**.app"

输出:

**.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: ###

总结

通过使用 fastlane,我们可以将 macOS 应用的公证过程自动化,大大提高了开发效率。

这个流程不仅可以集成到您的 CI/CD 流程中,还可以确保每次发布的应用都经过了正确的公证。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多