如何在Mac应用程序包中对shell脚本可执行文件进行编码?

时间:2015-05-25 18:55:39

标签: xcode macos shell codesign

我在myApp.app/Contents/MacOS/下有一个可执行的shell脚本。我们的代码签名管道抱怨子组件(此脚本)未签名。

我该如何签名?我们当前的管道有codesign --sign次调用,带有硬编码的证书编号和我不太了解的字段详细信息。基本上只有app中的应用程序和一些插件包都有代码签名。

我找不到关于如何对shell脚本进行代码签名的专门文档。

2 个答案:

答案 0 :(得分:1)

FWIW ...迟到的答案......但是,它可以帮助某人:如果您已指定(通过Info.plist's CFBundleExecutable键值)该脚本将成为您应用的可执行文件,当您尝试签署该脚本时,您应该确保其他所有内容都已签名。

注意:这是我通过bash脚本使用codesign的经验(因此,不使用XCode)。 Apple的文档说你应该从内到外签署你的应用程序包&#34 ;;这是我的解释,似乎对我们来说效果很好。

答案 1 :(得分:0)

与Build Phases>中的以下shell脚本类似的内容项目设置的“运行脚本”部分应该有效...

/usr/bin/codesign --force --sign "iPhone Developer" --preserve-metadata=identifier,entitlements --timestamp=none $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/$framework