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

Cod*_*ddy 6 macos codesign osx-elcapitan

使用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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

但是shell脚本版本无法在10.10和10.9上验证:

codesign -vv shell-script/HelloWorld.app
shell-script/HelloWorld.app: invalid signature (code or signature have been modified)
Run Code Online (Sandbox Code Playgroud)

我可以访问另一台10.11机器,当它签署.app时会出现同样的问题.我可以访问10.9机器,但也无法验证.

为shell脚本.app生成的_CodeSignature目录有所不同.

以下是10.10上签名的方式:

CodeDirectory
CodeRequirements
CodeResources
CodeSignature
Run Code Online (Sandbox Code Playgroud)

但是当我们在10.11上签名时,我们会收到一些额外的文

CodeDirectory
CodeRequirements
CodeRequirements-1
CodeResources
CodeSignature
CodeTopDirectory
Run Code Online (Sandbox Code Playgroud)

是不是有一个神奇的选择我缺少代码签名以允许这个工作?还是有错误?

Cod*_*ddy 1

我现在也收到了苹果公司的回复,不过与格雷厄姆的回复号码不同:

Engineering has determined that your bug report is a duplicate of another issue and will be closed.

Duplicate of 25457707 (Open)
Run Code Online (Sandbox Code Playgroud)

如果/当我听到更多信息时,将发布更新。没有提供有关修复的更多详细信息,或者即使它会被修复。

更新:此问题现已在 10.11.5 中修复 - 我没有收到 Apple 的任何指示,但现在可以在升级后使用。