[英]How do I code sign an Electron app before bundling it (for Mac)?
我正在為Mac OS X開發一個Electron應用程序。我試圖在本地開發之前測試其自動更新功能, 然后將其捆綁為.app
。
我有一個我的應用程序的初始版本Foo.app
,以及.dmg
和.zip
,使用electron-builder
模塊,用作更新。 我托管了這些文件。 我已經驗證他們安裝並正確運行。 我有一個在本地運行的Squirrel服務器,它將返回指向該.zip
的正確JSON有效負載。
為了在本地開發我的應用程序,我使用Webpack來轉換我的Web資產,並使用electron@1.4.4
在Electron中啟動這些資產。 換句話說,在本地開發時,我沒有啟動捆綁的.app
; 我正在啟動一個開發服務器並在Electron中提供這些資產。 這個過程類似於運行$ electron .
。
在此行調用自動更新掛鈎時會發生此問題:
autoUpdater.setFeedURL(feedURL)
此行引發電子錯誤,表示:
"Could not get code signature for running application."
好的,所以我進行搜索,看到有一些指南可以解釋如何對應用程序進行編碼簽名:
但是,這些表明我應該代碼簽署.app
。 正如我所說,我試圖在將其捆綁為.app
之前測試自動更新。 我不想一次又一次地重建,直到我自動更新正常工作。
所以我做了另一個搜索,看到有幾個論壇問題與我要求的或多或少相同:
我無法通過挖掘這些線程來解決問題。 我希望有人可以在捆綁之前給我一個明確的解決方案來簽署Electron應用程序。
對於答案,我希望得到所有這些答案的明確答案:
.app
之前,是否可以對我的Electron應用程序進行編碼簽名? 即,我將使用$ electron .
啟動的文件$ electron .
? 遠射,我還沒有證實這一點。
Squirrel.Mac檢查當前正在運行的應用程序的簽名[ 1 ],當您運行打包的應用程序時,這是AppName.app/Contents/MacOS/AppName
可執行文件。 這基本上是重命名的電子可執行文件。
但是當你運行electron .
它將從您的node/bin
目錄運行可執行文件。 默認情況下未對Electron進行簽名,因此如果您對其進行簽名,則自動更新程序可能會成功進行證書檢查。
所以基本上:
which electron
codesign -s "Developer ID Application: YourCompanyName" electron
簽名codesign -s "Developer ID Application: YourCompanyName" electron
codesign -dvvv electron
驗證代碼簽名 希望這應該削減它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.