2014-01-11 35 views
2

我正在使用codesign試圖在OSX上籤署我的Java應用程序。我已向Apple支付了我的100美元贖金並獲得了我的代碼簽名證書。然後我用codesign這樣迫使其簽署我的應用程序之前使用osxappbundle Maven插件創建:代碼簽名的應用程序仍然不可信

codesign -f -s "Peter Brewer" FHAES.app 

這似乎已經做的工作​​,當我嘗試做驗證簽名:

codesign --display --verbose=4 FHAES.app 

...我得到如下回應:

Executable=/Applications/FHAES.app/Contents/MacOS/JavaApplicationStub 
Identifier=FHAES 
Format=bundle with Mach-O universal (i386 x86_64) 
CodeDirectory v=20100 size=174 flags=0x0(none) hashes=3+3 location=embedded 
Hash type=sha1 size=20 
CDHash=de2cd9909fcc4bfab1f690c518a6c6c3b3097372 
Signature size=4311 
Authority=Mac Developer: Peter Brewer (N35745G8TD) 
Authority=Apple Worldwide Developer Relations Certification Authority 
Authority=Apple Root CA 
Signed Time=Jan 10, 2014, 4:46:57 PM 
Info.plist entries=10 
Sealed Resources version=2 rules=12 files=2 
Internal requirements count=1 size=164 

除非我誤會,這看ms表示已經使用Apple授權的證書成功簽名。然而,當我然後嘗試啓動應用程序時,我得到通常的「無法打開,因爲它來自未知的開發人員」錯誤。

誰能告訴我我做錯了什麼?

在相關說明中,如果有人可以在Linux下執行codesign我會永遠感激。我鄙視蘋果公司打破了我的一鍵式跨平臺構建系統,甚至比我敲詐我支付他們的證書還要多!

回答

5

以下幾小時我的眼球在developer.apple.com我終於找到了我需要的信息。整個蘋果生態系統正在推動開發人員使用Xcode和「他們的做事方式」,並要求持續投資於Apple硬件和軟件。例如,教程視頻只能在最近的Mac上查看(即比我有權訪問的2.5年前的系統更新)。但無論如何 - 我不會用它來發泄我的挫折感。

我以前的嘗試失敗的原因是因爲我使用的是錯誤的蘋果證書。上面描述的證書是用來簽署應用程序的,然後發送給蘋果公司,蘋果通過應用程序商店將其準備好發佈。由於我不打算通過Apple「銷售」我的開源應用程序,因此我需要另一種名爲Developer ID證書的證書,以便我可以在我自己的網站上分發我的應用程序。

要獲得您的開發人員ID證書,您需要設置配置文件,註冊開發計算機並跳過Apple開發人員網站上的其他各種環節。一旦你在你的機器上安裝了這個證書,你就可以在命令行上做登錄codesign -f -s "Developer ID" myapp.app

當我運行codesign --display --verbose=4 myapp.app時, '。這是GateKeeper不要給用戶冠軍的必要條件。

+0

直到讀完這篇文章,我才意識到必須使用不同的證書才能在App Store和App Store之外進行發佈。謝謝。對於那些有興趣的人,我已經幫助編輯了一系列步驟來準備Qt應用程序以便在OS X上發佈:http://stackoverflow.com/q/20909341/368896 –

相關問題