我正在将codesign
与—deep
选项一起使用。
/usr/bin/codesign --verbose --force --sign "Developer ID Application: myCompany” —deep myApp.app
在10.8上工作正常
$ codesign -vvv myApp.app
myApp.app: valid on disk
myApp.app: satisfies its Designated Requirement
但是在10.9上我得到了
nested code is modified or invalid
。$ codesign -vvv myApp.app
myApp.app: nested code is modified or invalid
file modified: myApp.app/Contents/MacOS/SecondUtility
我在MacOS文件夹中有两个可执行文件,一个来自构建阶段(目标:可执行文件)
$codesign -vvv myApp.app/Contents/MacOS/SecondUtility
myApp.app/Contents/MacOS/SecondUtility: valid on disk
myApp.app/Contents/MacOS/SecondUtility: does not satisfy its designated Requirement
带有代码符号shell命令的Run Script也不适用于我。
有人可以帮我吗?
最佳答案
在Xcode 5中创建了构建之后,再次用代码签名SecondUtility和myApp.app。
sudo /usr/bin/codesign --verbose --force --sign "Developer ID Application: myCompany" myApp.app/Contents/MacOS/SecondUtility
sudo /usr/bin/codesign --verbose --force --sign "Developer ID Application: myCompany" myApp.app
现在它的工作正常。
使用code sign shell命令运行脚本对我不起作用。
编辑
看看OS X Code Signing In Depth
从OS X版本10.9.5开始,OS X识别签名应用程序的方式将发生变化
Structure your bundle根据对OS X版本10.9或更高版本的期望:
仅在应包含签名的目录中包含签名的代码
码。
仅在应包含以下内容的目录中包括资源
资源。
不要使用--resource-rules标志或ResourceRules.plist。他们
已被淘汰,将被拒绝。