Electron应用在macOS下公证方法

在一顿猛如虎的Electron签名操作后,打出来的包发送给他人进行测试时,发现别人安装不上🙄(自己的电脑是没问题的,之前安装过未签名打包出来的应用的电脑也是没问题的,必须是一个之前未安装这个应用的电脑才会复现)。。。
提示如下:


image.png

而在签名前虽然也是有问题的,它会提示“打不开“XXX”,因为它来自身份不明的开发者”,但是至少通过设置是可以安装成功的。
可以去设置->安全与隐私->通用栏目下面点击仍要打开,或者设置安装选项为允许任何来源(如果没有该选项可以在终端中执行sudo spctl --master-disable

但是现在的这个提示问题,以上设置都没有用,是因为从MacOS 10.14.5开始,App都要进行公证(Notarization),否则将触发苹果的Gatekeeper,阻止用户安装你的App。这意味着,除了对 App 进行签名,还需要对其进行公证。

前面已经签名完成了,那么下面开始介绍如何对应用进行公证(notarize app)。


通过一番google后,发现大部分的公证方法都是使用electron-notarize,配置一个notarize.js,然后在electron-builder的时候通过afterSign钩子去执行这个文件。
具体可以参考:
macOS 下 Electron 程序的签名及公证

感觉这个方法有些麻烦,并且我们的应用并不需要上传到AppStore,而是挂到官网的下载页面,让用户点击下载dmg文件进行安装使用。

因此我这里是使用的另外一种方法:通过一句命令行语句直接对dmg文件进行公证😄
参考(不知道哪个是原著了):
一:Mac Electron 应用的签名(signature)和公证(notarization)
二:Mac Electron 应用的签名(signature)和公证(notarization)

公证(每次只需执行这一个命令即可)

xcrun altool --notarize-app --primary-bundle-id "com.xxx.xxx" --username "your developer appleid" --password "app-password" --asc-provider "ProviderShortname" -t osx --file xxx.dmg
  • primary-bundle-id
    自己app的bundle id
  • username
    苹果开发者ID(账号)
  • password
    应用专用密码。(登录appleid.apple.com,然后找到创建app password的地方,创建一个应用专用密码,这样可以避免暴露真实的密码。)
  • asc-provider
    证书提供者。查询命令如下:

查询证书提供者

xcrun altool --list-providers -u "your developer appleid" -p "app-password"
  • u
    苹果开发者ID(账号)
  • p
    应用专用密码。(同上)

查询出来的ProviderShortname和WWDRTeamID是一样的值,就是它。

公证成功后显示结果

No errors uploading 'xxx.xxx.dmg'.
RequestUUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

显示所有上传到苹果的包

xcrun altool --notarization-history  -u "your developer appleid" -p "app-password"
  • u
    苹果开发者ID(账号)
  • p
    应用专用密码。(同上)

查单个记录(里面有日志,公证失败可查看)

xcrun altool --notarization-info bfd6682e-49bc-4e82-ba8f-cdf0e8668502 -u "appid" -p "app-password"
  • notarization-info
    查询出来的上传记录的id
  • u
    苹果开发者ID(账号)
  • p
    应用专用密码。(同上)

遇到的问题

如何创建应用专用密码

请自行google,或参考:
怎样为Apple ID创建应用专用密码
需要注意,如果是苹果开发者账号是公司(company)类型,那么需要拥有最高权限的管理员账号才可以进行操作,其他普通管理员或者开发成员没有权限。

公证命令执行等待很长时间没有反应

我一般都是开着翻墙的代理的,毕竟是给苹果上传东西。一般时间在一两分钟、两三分钟的样子。
偶尔遇到过很久没有反应的情况,可能是网络不好,可以再开启终端代理试试。

export http_proxy=http://127.0.0.1:1081;
export https_proxy=http://127.0.0.1:1081;

如果再不行就多等等吧。。。总之最后都是成功了的~

执行公证命令报错:code -18000 (Cannot proceed with delivery: an existing transporter instance is currently uploading this package)

参考:
链接一
链接二
看很多答案说到了两种不同的目录,我也分不清是哪个起作用了,所以两个都执行吧,肯定没问题~😂

rm ~/Library/Caches/com.apple.amp.itmstransporter/UploadTokens/*.token
rm ~/.itmstransporter/UploadTokens/*.token

签名错误 Error: Could not get code signature for running application

参考:github issues
在项目的根目录下执行:

codesign --deep --force --verbose --sign - node_modules/electron/dist/Electron.app 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容