2012-03-16 86 views
17

從即將發佈的OSX版本(OSX Lion之後的版本)的註釋中可以看出,即使沒有通過Mac App商店分發,所有DMG /安裝程序也需要進行簽名。網守在OSX/XCode/Mac App Store之外爲OSX DMG簽名?

雖然我找不到執行此簽名的命令行工具,或者有關獲取簽名證書而不提交到App Store的許多文檔。

有人可以闡明: 1)如何獲得證書,而無需通過Mac App Store發佈應用程序? 2)如何在不使用內置XCode工具的情況下籤署DMG(最好是跨平臺工具)?

謝謝!

+0

OS X 10.8的大部分細節仍在NDA之下。 – duskwuff 2012-03-16 19:13:41

+3

好吧,把它當作「如何簽署雪豹DMG」。我也按照提問進行編輯,不提「NDA下的東西」。我希望能夠減輕你的觸發 - 快樂打擊關閉按鈕,而不是爲對話貢獻有意義的東西。 – psychotik 2012-03-16 19:22:12

+0

檢查''xcrun'工具哪些做最大的工作簽名的東西(包括配置文件)。 – Eimantas 2012-04-13 16:01:57

回答

4

代碼簽名詳細描述herehere - 基本上你需要獲得一個證書,然後你可以簽署你的申請...... AFAIK目前沒有簽署DMG本身的官方文件。至於你的第二個問題(跨平臺簽名),沒有這樣的工具可用(至少沒有一個是Apple正式支持的)。至於關於未來OS X版本的信息,我強烈建議詢問正確的蘋果論壇(通常也有與NDA相關的論壇)。

4

這是超級簡單:

CODESIGN_IDENTITY='Name of Code Sign Cert' # Found in Keychain Access 

codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.app 

然後在DMG:

codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.dmg 

這甚至適用於只讀DMGS像UDZO。

+0

哇,DMG簽名是如何工作的?它是hfs +元數據嗎? – 2014-01-02 11:10:23

2

簽名磁盤映像(來源:Apple

磁盤圖像可以使用在MacOS 10.11.5和後來的協同設計工具進行簽名。這允許整個磁盤映像在第一次安裝時由Gatekeeper進行驗證。

Gatekeeper也會驗證磁盤映像的內容。

磁盤映像只應使用您的開發者ID應用程序標識進行簽名。

在MacOS塞拉利昂後來,spctl可用於評估磁盤映像的簽名,就像這樣:

$ SPCTL -a -t開放--context背景:初級簽名-v MyImage.dmg /Users/me/Downloads/MyImage.dmg:接受源=開發者ID

注:在OS X 10.11.5或10.11.6磁盤映像簽名可能不能夠被重新簽名。在這種情況下,該操作看起來會成功,但簽名將無效。如果遇到此情況,請在macOS Sierra或更高版本上籤署新的(未簽名的)圖像副本。