【问题标题】:How to codesign a shell script executable inside a Mac app bundle?如何在 Mac 应用程序包中对可执行的 shell 脚本进行代码设计?
【发布时间】:2015-08-07 07:04:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: xcode macos shell codesign


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      项目设置的 Build Phases > Run Script 部分中类似于以下 shell 脚本的内容应该可以工作...

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-25
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 1970-01-01
        • 2019-12-29
        • 2013-09-09
        • 2011-07-12
        相关资源
        最近更新 更多