我的应用程序经过了正确的代码签名。。。
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,我会得到相同的结果
- 我不在乎应用商店。我只想要一个正确的代码签名安装的应用程序
我尝试使用pkgbuild
为MyApp.app和插件构建一个单独的包,然后使用productbuild
将它们组合在一起,但我得到了相同的结果。我不确定pkgbuild
步骤是否有必要。
我错过了什么?
这似乎对我有效:
productbuild --component ./MyApp.app /Applications --sign 'Developer ID Installer: Me' MyAppInstaller.pkg
我认为有必要使用--component
而不是--root
。