如何为包含插件的应用程序创建OS X安装程序?

时间:2014-10-20 15:57:40

标签: macos installer productbuild

我的应用已正确签署代码......

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步骤是否必要。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这似乎对我有用:

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

我想有必要使用--component代替--root