electron mac 打包俭识、分發(fā)流程(dmg & mas)

dmg?包

背景

在一些從沒有安裝過此軟件的電腦上安裝未簽名或未公證的?dmg?包時(shí),會(huì)觸發(fā)蘋果的?Gatekeeper兼都,阻止用戶安裝你的?App嫂沉。

測(cè)試階段可以去設(shè)置->安全與隱私->通用欄目下面點(diǎn)擊仍要打開,或者設(shè)置安裝選項(xiàng)為允許任何來(lái)源(如果沒有該選項(xiàng)可以在終端中執(zhí)行?sudo?spctl?--master-disable?)來(lái)解決此問題扮碧,下面介紹正式包的分發(fā)趟章,正式包分發(fā)需要包括?簽名?和?公證?2?個(gè)步驟

簽名

使用?dmg?包分發(fā)的方式需要使用?Developer?ID?Application?的證書簽名,只簽?.app?文件即可慎王,.dmg?文件不用簽

證書獲取

下載證書

在?apple?developer?后臺(tái)下載該證書蚓土,若沒有,則創(chuàng)建一個(gè)赖淤,只有?Account?Holder?才有權(quán)限創(chuàng)建此類型的證書蜀漆,也可以通過其他同學(xué)導(dǎo)出的?p12?文件安裝此證書

安裝證書

需將證書安裝在鑰匙串登錄模塊下

打開鑰匙串,切換到登錄漫蛔,保證當(dāng)前是在登錄欄下,雙擊下載的證書旧蛾,即可將證書安裝到登錄模塊下(保證此證書在鑰匙串中包含密鑰)

使用證書簽名

使用?electron-builder?的打包方式莽龟,內(nèi)置?electron-osx-sign?簽名模塊,不用單獨(dú)運(yùn)行簽名腳本

identity

identity?屬性為?package.json?中?build.mac?下的屬性

- 配置?null锨天,強(qiáng)制不簽名

- 配置?app.com?Inc.?(xxxxxxxx)?毯盈,使用鑰匙串中的?app.com?Inc.?(xxxxxxxx)?證書進(jìn)行簽名

- 不配置?identity?屬性,打包時(shí)病袄,electron-builder?會(huì)自動(dòng)去鑰匙串中查找可用的證書進(jìn)行簽名

證書類型

上述?identity?的配置不能包含證書頭部信息搂赋,electron-builder?會(huì)根據(jù)環(huán)境配置默認(rèn)拼接,規(guī)則為

此圖為?electron-builder@23.3.2?版本的拼接規(guī)則益缠,不同版本的?electron-builder?規(guī)則有所差異脑奠。圖中代碼位置在/node_modules/app-builder-lib/out/macPackager.js

公證

- 在?electron-builder?提供的?afterSign?hook?腳本中寫入公證腳本

//?package.json

{??...??"build":?{????...????"afterSign":?"afterSign.js"??}}

- 在?afterSign.js?腳本中,使用?electron-notarize?模塊進(jìn)行公證

這里的?appleId幅慌、?appleIdPassword?為團(tuán)隊(duì)中任一有權(quán)限的賬號(hào)即可

appleIdPassword?獲取

登錄?appid宋欺,生成你的專用密碼

公證結(jié)果

若公證失敗,命令行?log?或郵箱可以看到失敗的原因

若公證成功胰伍,Apple?Developer?會(huì)向你的郵箱發(fā)送公證結(jié)果齿诞,此時(shí)就可以放心得分發(fā)你的?dmg?文件給其他人了

mas?包

這里主要講解?mas?包如何打包、簽名骂租。mas?包打完后祷杈,生成?.pkg?文件,再通過?Transporter?等工具上傳的步驟這里不再?gòu)?fù)述

mas?正式包

配置

//?package.json

證書渗饮、profile?獲取

- 使用?Mac?App?Distribution?類型的證書給?.app?文件簽名使用但汞,此證書在安裝到鑰匙串后名字可能會(huì)改成“3rd?Party?Mac?Developer?Application”

- 使用?Mac?Installer?Distribution?類型的證書給?.pkg?文件簽名使用宿刮,此證書在安裝到鑰匙串后名字可能會(huì)改成“3rd?Party?Mac?Developer?Installer”

- 在?developer?后臺(tái)新建一個(gè)?profile、或者使用已經(jīng)創(chuàng)建過的特占,關(guān)鍵信息是此?profile?需要與上述?Mac?App?Distribution?證書相關(guān)聯(lián)糙置,此?profile?用于在?package.json?中?mas.provisioningProfile?中配置

簽名

使用?electron-builder?的打包方式,內(nèi)置?electron-osx-sign?簽名模塊是目,不用單獨(dú)運(yùn)行簽名腳本谤饭,electron-builder?會(huì)自動(dòng)尋找鑰匙串中的證書,進(jìn)行簽名懊纳。(可查看上述?identity?規(guī)則)

安裝完證書揉抵、配置完?package.json?后,運(yùn)行?electron-builder?build?--mac??構(gòu)建?mas?包

注意`头琛冤今!上圖為?electron-builder@23.3.2?版本尋找?3rd?Party?的證書,低版本可能會(huì)尋找?Apple?Distribution?的證書茂缚,解決方案為升級(jí)?electron-builder?版本戏罢,或手動(dòng)修改?/node_modules/app-builder-lib/out/macPackager.js?最下面的代碼,Apple?Distribution?->?3rd?Party?Mac?Developer?Application

腳本執(zhí)行完畢脚囊,簽名成功后龟糕,生成?.pkg?包(electron-builder?會(huì)自動(dòng)查找?3rd?Party?Mac?Developer?Installer?證書給?.pkg?文件簽名,若本地沒有此證書悔耘,命令行會(huì)報(bào)錯(cuò))讲岁,用于上傳?App?Store?Connect

mas-dev?測(cè)試包

配置

證書、profile?獲取

- 構(gòu)建?mas-dev?包的方式需要使用?Mac?Developer?類型的證書衬以,供簽名使用

- 在?developer?后臺(tái)新建一個(gè)?profile缓艳、或者使用已經(jīng)創(chuàng)建過的,關(guān)鍵信息是此?profile?需要與上述?Mac?Developer?證書相關(guān)聯(lián)看峻,此?profile?用于在?package.json?中?masDev.provisioningProfile?中配置

簽名

使用?electron-builder?打包阶淘、簽名,運(yùn)行?electron-builder?build?--mac??構(gòu)建?mas-dev?包

腳本執(zhí)行完畢互妓,簽名成功后舶治,生成?.app?文件用于測(cè)試

設(shè)備綁定

此時(shí),打開?.app?文件可能會(huì)崩潰车猬,還需要在?develop?后臺(tái)中綁定測(cè)試設(shè)備

Device?ID(UUID)在關(guān)于本機(jī)->概覽->系統(tǒng)報(bào)告->硬件->硬件UUID?獲取

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霉猛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子珠闰,更是在濱河造成了極大的恐慌惜浅,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏嗜,死亡現(xiàn)場(chǎng)離奇詭異坛悉,居然都是意外死亡伐厌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門裸影,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)挣轨,“玉大人,你說我怎么就攤上這事轩猩【戆纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵均践,是天一觀的道長(zhǎng)晤锹。 經(jīng)常有香客問我,道長(zhǎng)彤委,這世上最難降的妖魔是什么鞭铆? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮焦影,結(jié)果婚禮上车遂,老公的妹妹穿的比我還像新娘。我一直安慰自己斯辰,他們只是感情好舶担,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椒涯,像睡著了一般柄沮。 火紅的嫁衣襯著肌膚如雪回梧。 梳的紋絲不亂的頭發(fā)上废岂,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音狱意,去河邊找鬼湖苞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛详囤,可吹牛的內(nèi)容都是我干的财骨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼藏姐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼隆箩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起羔杨,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捌臊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后兜材,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體理澎,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逞力,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糠爬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寇荧。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖执隧,靈堂內(nèi)的尸體忽然破棺而出揩抡,到底是詐尸還是另有隱情,我是刑警寧澤殴玛,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布捅膘,位于F島的核電站,受9級(jí)特大地震影響滚粟,放射性物質(zhì)發(fā)生泄漏寻仗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一凡壤、第九天 我趴在偏房一處隱蔽的房頂上張望署尤。 院中可真熱鬧,春花似錦亚侠、人聲如沸曹体。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)箕别。三九已至,卻和暖如春滞谢,著一層夾襖步出監(jiān)牢的瞬間串稀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工狮杨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留母截,地道東北人店乐。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓赔退,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親做葵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子护蝶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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