2016-11-17 89 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)