【问题标题】:Sign executable files on MacOS using CMake and PackageMaker CPack generator使用 CMake 和 PackageMaker CPack 生成器在 MacOS 上签署可执行文件
【发布时间】:2018-10-19 14:37:21
【问题描述】:

我使用 CMake

add_custom_command(TARGET POST_BUILD COMMAND codesign ...)

用于在构建时签署可执行文件。

它工作正常,但是当 CPack 生成包时,它会在可执行文件上重写 rpath 并在它们上调用 strip 命令。这会更改文件并使签名无效。在 CPack 完成安装后和实际打包之前,CMake 中有什么方法可以对二进制文件进行签名吗?

【问题讨论】:

    标签: macos cmake codesign cpack


    【解决方案1】:

    您应该能够单独在 cmake 中签名和剥离。但是,如果您确实想要去除符号(例如 cmake --install . --strip),您还需要将 --strip 添加到 cmake 安装步骤。

    add_executable(my_bundle_exe MACOSX_BUNDLE ${SRCS})
    
    set_target_properties(my_bundle_exe PROPERTIES
      XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${MY_CODE_SIGN_IDENTITY}"
      XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS my.entitlements
      XCODE_ATTRIBUTE_PRODUCT_NAME "My Product"
      XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}
      XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER my_profile_name
      XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING YES   # this is needed for strip symbols
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 2020-10-02
      • 2022-06-26
      • 2021-07-12
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多