使用OS X 10.11签署包装shell脚本的.app无法在10.10或更低版本上进行验证。我可以在10.10和10.9上签名,并在10.9,10.10和10.11进行验证。
我已在github上放置了两个示例应用和一个脚本来展示这一点。两个HelloWorld.app仅在Contents / MacOS / HelloWorld中的二进制文件中有所不同。一个是shell脚本,另一个是objective-c编译。
签名工作并在10.11上验证两个版本:
Shell脚本版本:
codesign -s "${signing_identity}" -v shell-script/HelloWorld.app
signed bundle with generic [liamsharp.helloworld]
codesign -vv shell-script/HelloWorld.app
shell-script/HelloWorld.app: valid on disk
shell-script/HelloWorld.app: satisfies its Designated Requirement
Objective-C版本:
codesign -s "${signing_identity}" -v objective-c/HelloWorld.app
signed bundle with Mach-O thin (x86_64) [liamsharp.helloworld]
codesign -vv objective-c/HelloWorld.app
objective-c/HelloWorld.app: valid on disk
objective-c/HelloWorld.app: satisfies its Designated Requirement
但是shell脚本版本无法在10.10和10.9上验证:
codesign -vv shell-script/HelloWorld.app
shell-script/HelloWorld.app: invalid signature (code or signature have been modified)
我可以访问另一台10.11计算机,并且当它签名时会出现同样的问题.app' s。我可以访问10.9机器,但也无法验证。
为shell脚本.app。
生成的_CodeSignature目录有所不同以下是10.10时签名的方式:
CodeDirectory
CodeRequirements
CodeResources
CodeSignature
但是当我们在10.11上签名时,我们会得到一些额外的文件:
CodeDirectory
CodeRequirements
CodeRequirements-1
CodeResources
CodeSignature
CodeTopDirectory
是否有一个神奇的选择我没有代码签名以允许它工作?还是有错误?
答案 0 :(得分:1)
我现在也收到了Apple的回复,但与格雷厄姆不同的是:
Engineering has determined that your bug report is a duplicate of another issue and will be closed.
Duplicate of 25457707 (Open)
如果/当我听到更多内容时,会发布更新。没有提供有关修复的eta的更多详细信息,或者即使它将被修复。
更新:现在已在10.11.5中修复 - 我没有任何来自Apple的指示,但现在可以在升级后使用。