适用于iOS项目的XCode 8中的CMake和代码签名

时间:2016-11-17 20:09:06

标签: ios xcode cmake

CMake能够为XCode< = 7和iOS项目配置自动代码签名,目标属性设置如

set_target_properties(app PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "PROPER IDENTIFIER")

XCode 8改变了签名过程。现在需要选项 在项目设置“常规选项卡 - >签名”中选中“自动管理签名”。如果我为cmake生成的项目手动检查此选项,则签名很有效。但是我没有找到默认情况下从cmake项目启用此选项的方法。这可以用于cmake(> = 3.7.0)吗?

1 个答案:

答案 0 :(得分:8)

如果您想在CMakeLists.txt中自动签名

SET_XCODE_PROPERTY(MyTarget CODE_SIGN_IDENTITY "iPhone Developer")
SET_XCODE_PROPERTY(MyTarget DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID})

DEVELOPMENT_TEAM_ID - 是你的TeamID例如。 2347GVV3KC

如果您想手动签名:

SET_XCODE_PROPERTY(MyTarget CODE_SIGN_IDENTITY ${CODESIGNIDENTITY})
SET_XCODE_PROPERTY(MyTarget DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID})
SET_XCODE_PROPERTY(MyTarget PROVISIONING_PROFILE_SPECIFIER ${PROVISIONING_PROFILE_NAME})

CODESIGNIDENTITY - 设置为您首选的代码签名标识,以查看列表:/usr/bin/env xcrun security find-identity -v -p codesigning

例如。 AAAAAAC9F10573BBBBBBBBBBBF25F7445951F3D8

或者你可以写:"iPhone Distribution"但我不确定这是否是一般规则:)

PROVISIONING_PROFILE_NAME - 没有扩展名的文件名,例如。我的全名:Game_AppStore.mobileprovision所以我在这里写Game_AppStore

首先应将配置文件添加到Xcode缓存中,以便~/Library/MobileDevice/Provisioning\ Profiles中可以使用它 More info 您只需点击Provisioning Profile: Name然后选择Import Profile...即可从Xcode执行此操作。请记住,当您使其无效时,您需要将其从缓存中删除。

SET_XCODE_PROPERTY是一个宏:

# This little macro lets you set any XCode specific property
macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
    set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro (set_xcode_property)