背景

一个electron的应用想打包成跨平台的应用,支持windows与mac的使用,并且发布到steam

OS:Macos big sur 11.2.3
Hardware:M1 8g
项目脚手架:https://github.com/umbrella22...

mac应用打包以后发给他人会出现无法使用的情况,提示无法验证开发者
届时表明apple需要验证开发者,自然的了解到需要对代码进行签名(code-signing)

1.申请证书

必须:developer id application
csr -> cer -> download

检查证书是否有效:security find-identity -v -p codesigning,有第二个就表示可以了
image.png

如果发现没有刚安装的证书,从系统自带的钥匙串访问内检查是否是证书不被信任
下载并安装红框内两个证书即可解决。
image.png

2.electron build签名

感谢这些大佬的文章:https://oldj.net/article/2019...

跟着一步一步设置即可,成功签名

3.上传公证

跟着上述步骤进行上传公证时,也许上传失败
搜了半天没办法绕过xcode,还是需要安装一个xcode

  ⨯ Failed to upload app to Apple's notarization servers

xcrun: error: unable to find utility "altool", not a developer tool or in PATH

安装以后,还是不断报错,有两种情况:要么是拿不到keychain,要么是appleid被locked;

参考https://stackoverflow.com/que... 解决keychain问题

第二个问题使用终端命令完成上传公证

altool --notarize-app -f <file> --primary-bundle-id <bundle_id> {-u <username> [-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>} [--asc-provider <provider_shortname> | --team-id <wwdr_team_id>]

成功以后会返回一个UUID
之后就可以利用UUID,通过下面的指令查看结果了

altool --notarization-info <uuid> {-u <username> [-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}

Suka
333 声望263 粉丝

Learning for myself.