2014-10-20 229 views
0

我的應用程序正確的代碼簽名的......如何爲包含插件的應用程序創建OS X安裝程序?

codesign -vv MyApp.app 
MyApp.app: valid on disk 
MyApp.app: satisfies its Designated Requirement 

spctl -vv --assess --type execute MyApp.app 
MyApp.app: accepted 
source=Developer ID 
origin=Developer ID Application: Me/My Company 

它包含在MyApp.app/Contents/Plugins/jre插件。

如果我創建一個安裝...

productbuild --sign 'Developer ID Installer: Me' --root MyApp.app 
    /Applications/MyApp.app MyAppInstaller.pkg 

...然後再進行安裝,然後安裝MyApp的不再是正確的代碼簽名。

codesign -vv /Applications/MyApp.app 
/Applications/MyApp.app: code object is not signed at all 
In subcomponent: /Applications/MyApp.app/Contents/PlugIns/jre/Contents/_CodeSignature/CodeResources 

其他說明:

  • 安裝程序本身的代碼簽名的,只是沒有安裝的應用程序。
  • 如果我不包含插件,我會得到一個正確代碼簽名安裝的應用程序。
  • 如果使用PackageMaker或productbuild,我會得到相同的結果。
  • 我不在乎App Store。我只想要一個正確代碼簽名安裝的應用程序。

我試着用pkgbuild搭建既爲MyApp.app和插件一個單獨的包,然後使用productbuild將它們結合起來,但我得到了相同的結果。我不確定是否需要pkgbuild步驟。

我錯過了什麼?

回答

0

這似乎爲我工作:

productbuild --component ./MyApp.app /Applications --sign 'Developer ID Installer: Me' MyAppInstaller.pkg 

我想用--component而不是--root這是必要的。

相關問題