是否在OS X 10.11中签署了shell脚本包装应用程序?

时间:2016-04-29 15:28:42

标签: macos osx-elcapitan codesign

使用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

是否有一个神奇的选择我没有代码签名以允许它工作?还是有错误?

1 个答案:

答案 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的指示,但现在可以在升级后使用。