Electron應(yīng)用在macOS下公證方法

在一頓猛如虎的Electron簽名操作后敌蚜,打出來的包發(fā)送給他人進(jìn)行測(cè)試時(shí)灵再,發(fā)現(xiàn)別人安裝不上??(自己的電腦是沒問題的边翁,之前安裝過未簽名打包出來的應(yīng)用的電腦也是沒問題的啼肩,必須是一個(gè)之前未安裝這個(gè)應(yīng)用的電腦才會(huì)復(fù)現(xiàn))橄妆。。祈坠。
提示如下:


image.png

而在簽名前雖然也是有問題的害碾,它會(huì)提示“打不開“XXX”,因?yàn)樗鼇碜陨矸莶幻鞯拈_發(fā)者”,但是至少通過設(shè)置是可以安裝成功的赦拘。
可以去設(shè)置->安全與隱私->通用欄目下面點(diǎn)擊仍要打開慌随,或者設(shè)置安裝選項(xiàng)為允許任何來源(如果沒有該選項(xiàng)可以在終端中執(zhí)行sudo spctl --master-disable

但是現(xiàn)在的這個(gè)提示問題,以上設(shè)置都沒有用躺同,是因?yàn)閺腗acOS 10.14.5開始阁猜,App都要進(jìn)行公證(Notarization),否則將觸發(fā)蘋果的Gatekeeper笋籽,阻止用戶安裝你的App蹦漠。這意味著,除了對(duì) App 進(jìn)行簽名车海,還需要對(duì)其進(jìn)行公證笛园。

前面已經(jīng)簽名完成了隘击,那么下面開始介紹如何對(duì)應(yīng)用進(jìn)行公證(notarize app)。


通過一番google后研铆,發(fā)現(xiàn)大部分的公證方法都是使用electron-notarize埋同,配置一個(gè)notarize.js,然后在electron-builder的時(shí)候通過afterSign鉤子去執(zhí)行這個(gè)文件棵红。
具體可以參考:
macOS 下 Electron 程序的簽名及公證

感覺這個(gè)方法有些麻煩凶赁,并且我們的應(yīng)用并不需要上傳到AppStore,而是掛到官網(wǎng)的下載頁面逆甜,讓用戶點(diǎn)擊下載dmg文件進(jìn)行安裝使用虱肄。

因此我這里是使用的另外一種方法:通過一句命令行語句直接對(duì)dmg文件進(jìn)行公證??
參考(不知道哪個(gè)是原著了):
一:Mac Electron 應(yīng)用的簽名(signature)和公證(notarization)
二:Mac Electron 應(yīng)用的簽名(signature)和公證(notarization)

公證(每次只需執(zhí)行這一個(gè)命令即可)

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
    蘋果開發(fā)者ID(賬號(hào))
  • password
    應(yīng)用專用密碼。(登錄appleid.apple.com交煞,然后找到創(chuàng)建app password的地方咏窿,創(chuàng)建一個(gè)應(yīng)用專用密碼,這樣可以避免暴露真實(shí)的密碼素征。)
  • asc-provider
    證書提供者集嵌。查詢命令如下:

查詢證書提供者

xcrun altool --list-providers -u "your developer appleid" -p "app-password"
  • u
    蘋果開發(fā)者ID(賬號(hào))
  • p
    應(yīng)用專用密碼。(同上)

查詢出來的ProviderShortname和WWDRTeamID是一樣的值御毅,就是它根欧。

公證成功后顯示結(jié)果

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

顯示所有上傳到蘋果的包

xcrun altool --notarization-history  -u "your developer appleid" -p "app-password"
  • u
    蘋果開發(fā)者ID(賬號(hào))
  • p
    應(yīng)用專用密碼。(同上)

查單個(gè)記錄(里面有日志端蛆,公證失敗可查看)

xcrun altool --notarization-info bfd6682e-49bc-4e82-ba8f-cdf0e8668502 -u "appid" -p "app-password"
  • notarization-info
    查詢出來的上傳記錄的id
  • u
    蘋果開發(fā)者ID(賬號(hào))
  • p
    應(yīng)用專用密碼凤粗。(同上)

遇到的問題

如何創(chuàng)建應(yīng)用專用密碼

請(qǐng)自行g(shù)oogle,或參考:
怎樣為Apple ID創(chuàng)建應(yīng)用專用密碼
需要注意欺税,如果是蘋果開發(fā)者賬號(hào)是公司(company)類型侈沪,那么需要擁有最高權(quán)限的管理員賬號(hào)才可以進(jìn)行操作,其他普通管理員或者開發(fā)成員沒有權(quán)限晚凿。

公證命令執(zhí)行等待很長時(shí)間沒有反應(yīng)

我一般都是開著翻墻的代理的,畢竟是給蘋果上傳東西瘦馍。一般時(shí)間在一兩分鐘歼秽、兩三分鐘的樣子。
偶爾遇到過很久沒有反應(yīng)的情況情组,可能是網(wǎng)絡(luò)不好燥筷,可以再開啟終端代理試試。

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

如果再不行就多等等吧院崇。肆氓。〉装辏總之最后都是成功了的~

執(zhí)行公證命令報(bào)錯(cuò):code -18000 (Cannot proceed with delivery: an existing transporter instance is currently uploading this package)

參考:
鏈接一
鏈接二
看很多答案說到了兩種不同的目錄谢揪,我也分不清是哪個(gè)起作用了,所以兩個(gè)都執(zhí)行吧,肯定沒問題~??

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

簽名錯(cuò)誤 Error: Could not get code signature for running application

參考:github issues
在項(xiàng)目的根目錄下執(zhí)行:

codesign --deep --force --verbose --sign - node_modules/electron/dist/Electron.app 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拨扶,一起剝皮案震驚了整個(gè)濱河市凳鬓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌患民,老刑警劉巖缩举,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匹颤,居然都是意外死亡仅孩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門印蓖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辽慕,“玉大人,你說我怎么就攤上這事另伍”前伲” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵摆尝,是天一觀的道長温艇。 經(jīng)常有香客問我,道長堕汞,這世上最難降的妖魔是什么勺爱? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮讯检,結(jié)果婚禮上琐鲁,老公的妹妹穿的比我還像新娘。我一直安慰自己人灼,他們只是感情好围段,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著投放,像睡著了一般奈泪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灸芳,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天涝桅,我揣著相機(jī)與錄音,去河邊找鬼烙样。 笑死冯遂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谒获。 我是一名探鬼主播蛤肌,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼壁却,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了寻定?” 一聲冷哼從身側(cè)響起儒洛,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狼速,沒想到半個(gè)月后琅锻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡向胡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年恼蓬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僵芹。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡处硬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拇派,到底是詐尸還是另有隱情荷辕,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布件豌,位于F島的核電站疮方,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏茧彤。R本人自食惡果不足惜骡显,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望曾掂。 院中可真熱鬧惫谤,春花似錦、人聲如沸珠洗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽许蓖。三九已至痹愚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛔糯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工窖式, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚁飒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓萝喘,卻偏偏與公主長得像淮逻,于是被迫代替她去往敵國和親琼懊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容