Как добавить 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 ...")