2016-11-17 30 views
10

CMake的能够配置自动代码签名对的XCode < = 7和iOS项目与目标属性设置像CMake和代码中的XCode 8签名为iOS突出

set_target_properties(app PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "PROPER IDENTIFIER") 

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

回答

1

如果你想在的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

发放模板previosly应该被添加到Xcode的缓存,因此将在~/Library/MobileDevice/Provisioning\ Profiles More info 您可以简单地从Xcode中做到这一点通过点击Provisioning Profile: Name,并挑选Import Profile...然后选择它。记住,当你使它无效时,你需要从缓存中删除它。


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)