Как добавить facebookSDK в проект xcode с помощью cmake?

У меня возникли трудности с добавлением facebookSDK.framework в мой проект xcode с помощью cmake? Вот что я сделал до сих пор. Но это не похоже на работу

set (facebook_sdk_path ${CMAKE_HOME_DIRECTORY}/external/framework/facebook/ios)
message("adding facebookSDK" ${facebook_sdk_path})
target_link_libraries(${Target} "${facebook_sdk_path}/facebookSDK.framework/facebookSDK")

Я считаю, что нам нужно установить фреймворк в "пути поиска фреймворка" в настройках проекта, но я не совсем уверен, как это сделать.

2 ответа

Решение

Нашел свое решение: я использовал этот макрос, который я нашел из CMake и XCode: "не могу найти объявление интерфейса для 'NSObject'"

macro(AddExternalFramework fwname appname libpath)
    find_library(FRAMEWORK_${fwname}
        NAMES ${fwname}
        PATHS ${libpath} 
        NO_DEFAULT_PATH)
    if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
        MESSAGE(ERROR ": Framework ${fwname} not found: ${FRAMEWORK_${fwname}}")
    else()
        TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}})
        MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
    endif()
endmacro(AddExternalFramework)

Я столкнулся с той же проблемой, но ответ Фрэнка не сработал для меня. Как упоминалось в сообщении, ссылка TARGET_LINK_LIBRARIES портит FRAMEWORK_SEARCH_PATHS переменная. В моем случае он находит FacebookSDK.framework, но затем генерирует ошибки компоновщика для остальных включенных фреймворков (например, UIKit, Foundation и т. Д.).

Моим решением было просто скопировать FacebookSDK.framework в папки фреймворков XCode. Имейте в виду, что вам нужно скопировать его на iPhoneOS и iPhoneSimulator, если вы создаете устройство и симулятор. В настоящее время XCode7 и SDK9.0 эти папки:

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks
  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/System/Library/Frameworks

Добавление FacebookSDK.framework как обычно работает нормально:

SET (OUR_FRAMEWORKS "-framework Foundation -framework UIKit -framework FacebookSDK ...")
Другие вопросы по тегам