簡體   English   中英

如何在捆綁電子應用程序之前對其進行編碼(對於Mac)?

[英]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進行簽名,因此如果您對其進行簽名,則自動更新程序可能會成功進行證書檢查。

所以基本上:

  1. 找電子: which electron
  2. 將工作目錄更改為電子路徑
  3. 使用codesign -s "Developer ID Application: YourCompanyName" electron簽名codesign -s "Developer ID Application: YourCompanyName" electron
  4. 使用codesign -dvvv electron驗證代碼簽名

希望這應該削減它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM