那点事"/>
聊聊electron Mac APP 公证的那点事
1.什么是公证
从MacOS 10.14.5开始,所有“新”开发人员签名的App都需要进行公证(Notarization),否则将触发苹果的Gatekeeper,阻止用户安装你的App。这意味着,除了对 App 进行签名,还需要对其进行公证。如果你尝试启动应在MacOS 10.14.5上未经公证的Appp,则会看到以下的错误消息:
无法打开“”,因为Apple 无法检查其是否包含恶意软件。
2、公证中遇到的错误
2.1 公证遇到了同样的配置公证不成功的
报错信息如下:
通过苹果官方文档查阅解决方案如下:
但是按照这种方案处理后依然没有解决
2.2 通过查阅其他资料:
在添加公证时,苹果偷偷加入了一项要求,即App的 runtime 必须是 hardened runtime ,这在默认情况下会减少应用程序的权限 于是便在配置中添加了hardened runtime
添加后公证,报错缺乏权限文件
2.3 通过查阅electron 官方文档 给出了配置文件
文档如下 :
“osxSign”: { “identity”: “Developer ID Application: Felix Rieseberg (LT94ZKYDCJ)”, “hardened-runtime”: true, “entitlements”: “entitlements.plist”, “entitlements-inherit”: “entitlements.plist”, “signature-flags”: “library” }, “osxNotarize”: { “appleId”: “felix@felix.fun”, “appleIdPassword”: “my-apple-id-password”, }
同时给了权限文件:
按照这个配置 公证通过 但是新的问题出现了: 应用打开直接闪退
查阅很多资料,配置都是如图。于是考虑过electron版本过低,于是尝试升级electron版本,升级node 环境,在升级后 依然有闪退的问题, 问题没有得到最终的解决。
3、最终解决方案
最后考虑配置问题,在网上搜集一些关于electron的技术论坛: 看到一些信息,有个讨论说 父权限和子继承的问题,于是把配置文件改成了两个权限文件打包,对整体APP进行父权限签名 ,在签名公证后 苹果官方返回公证信息,然后对这些子目录权限在进行单个签名 并用子权限文件进行签名
再次打包公证 最终公证通过
欢迎参与讨论聊聊electron Mac APP 公证的那点事
更多推荐
聊聊electron Mac APP 公证的那点事
发布评论