Tauri macOS App 分发公证(codesigning, notarize)

Tauri 开发开的ap ,打包后,如果不进行验证,每次安装后打开,都会提示 App已经损坏,虽然可以通过命令( xattr -c /Applications/appname.app)解决,但是体验不好,如果是有一定量级用户的App, 如果不做公证会让人感觉 App 是病毒或bug。

在 macOS 上,App 公正 分两种,一种是 在App Store 中的,一种是在App Store 外的,今天主要介绍 App Store 外的 ,App 公正(notarize) 前要签名,AppStore 外的 用 Developer ID Application ,开发证书有很多种,下图是所有的证书种类,今天只用 Developer ID Application 。

第一步:配置证书 用于 codesigning

先用 security find-identity -v -p codesigning 命令查看一下本地安装的证书,如果有 Developer ID Application 类型的,复制一下ID,然后放到 tauri 配置中,如果没有请先用自己的apple 开发账号,生成证书,下载到本地并双击导入,然后运行命令,查看证书的ID

tauri.config.json 如下:

设置好后,可以先运行 tauri build ,构建一下测试是否能签名代码,构建中警示 Notarizing 跳过了,没有设置 Notarizing 需要的一些环境变量。

第二步:设置环境变量用于公证 Notarizing

有两种设置环境变量的方式,分别是:

  • 使用 App Store Connect API 密钥进行身份验证,相对比较安全一点,key可以是遏制权限,需要的环境变量是 :APPLE\_API\_ISSUER 、 APPLE\_API\_KEY 、 APPLE\_API\_KEY\_PATH
  • 使用你的 Apple ID 进行身份验证,相对不安全,需要的环境变量有:APPLE\_ID 、APPLE\_PASSWORD 、 APPLE\_TEAM\_ID

我们选择 App Store Connect API 的方式,创建API key 的页面的进入路径是: App Store Connect → 用户和访问 → 集成,如下图。创建的是团队密钥,不是个人。创建后下载,只能下载一次,所以要保存好,下载后最好不要修改文件名,因为文件名 AuthKey\_keyID.p8 包含了key ID,通过文件名可以知道是哪个 API key 。

下载 P8文件后,把APPLE\_API\_ISSUER、APPLE\_API\_KEY 和 APPLE\_API\_KEY\_PATH 设置到环境变量中,APPLE\_API\_ISSUER 一个账户只有一个,APPLE\_API\_KEY 下载文件的文件名后半部分就是 API Key。APPLE\_API\_KEY\_PATH 是p8文件的绝对路径。设置完环境变量,然后运行 tauri build,效果如下

构建成功后 ,安装公证后的 App 包,就不会提示 App 已经损坏了。

参考

Tauri 文档-分发-签名: https://tauri.app/zh-cn/distribute/signing/macos/

apple 证书:https://developer.apple.com/account/resources/certificates/list

apple App Store Connect :https://appstoreconnect.apple.com/access/integrations/api

你可能感兴趣的:(taurimacos前端)