我面临一个棘手的问题,我希望有人以前遇到过类似的事情。
我创建了一个 OS X 应用程序(应用程序包,在 Yosemite 10.10.2 上进行测试),其中包含几个辅助子应用程序。这些子应用程序存储在它们自己的应用程序包中。
结构是:
AppName.app
-> Contents/Frameworks/SubAppName_1.app
-> Contents/Frameworks/SubAppName_2.app
等等等等。这一切都很好,完全没有问题。
当我沙箱/代码设计我的应用程序以准备开发/AdHoc/Mac App Store 部署时,问题开始出现。
我正在使用以下命令来签署我的应用程序包(+ 子组件)
codesign --verbose --force --sign "$IDENTITY" --entitlements entitlements.child "$OUTDIRECTORY/AppName.app/Contents/Frameworks/SubAppName_1.app"
codesign --verbose --force --sign "$IDENTITY" --entitlements entitlements.child "$OUTDIRECTORY/AppName.app/Contents/Frameworks/SubAppName_2.app"
codesign --verbose --force --sign "$IDENTITY" --entitlements entitlements.parent "$OUTDIRECTORY/AppName.app"
再次,效果很好。签名的应用程序启动,工作正常。所有功能都正常工作,没有错误/崩溃/可见错误。类似于非沙盒/协同设计的应用程序。一切都在沙箱中运行。我可以使用该应用程序数小时,没问题。
但是,如果我随后关闭应用程序一段时间(例如,15-30 分钟,这是非常随机的),我会在我的一个子应用程序上收到以下签名无效错误(主包将它们作为子进程生成)。
12:38:56 MBA.local amfid[274]: /Applications/AppName.app/Contents/Frameworks/SubAppName_1.app/Contents/MacOS/SubAppName_1 signature not valid: 0xfffefa31
12:38:56 MBA kernel[0]: proc 82808: load code signature error 4 for file "SubAppName_1"
12:38:57 MBA.local amfid[274]: /Applications/AppName.app/Contents/Frameworks/SubAppName_1.app/Contents/MacOS/SubAppName_1 signature not valid: 0xfffefa31
12:38:57 MBA kernel[0]: proc 82811: load code signature error 4 for file "SubAppName_1"
如果我在几分钟后重新启动应用程序,一切仍然有效。十分之九的时候我需要重新编译应用程序才能让它再次工作。但是,偶尔,它会随机重新开始工作。
当我在不相关的 Yosemite 设备上部署此应用程序的 AdHoc 构建时,会发生同样的事情,但我得到以下 amfid 错误代码:0xfffefa2a
任何人都有任何想法可能导致这种情况?一定有什么我做错了!