Настройка фреймворков Fbsdk для проекта iOS React-Native
[Огромное обновление]
Кто-то прислал мне это, и его намного легче прочитать, чтобы установить fbsdk с React Native: https://developers.facebook.com/docs/react-native/getting-started-ios
Однако проблема была все та же:
Use of undeclared identifier 'UIUserInterfaceIdiomTV'
Я предполагаю, что это ошибка из-за содержимого, извлекаемого CocoaPods, потому что я смог заставить пример работать, просто удалив тот же случай UIUserInterfaceIdiomTV (он был в коммутаторе).
Однако, следуя каждому шагу из руководства и в конечном итоге удаляя UIUserInterfaceIdiomTV, я столкнулся с новыми проблемами компиляции в моем собственном проекте: Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FBSDKAppEvents", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RCTRootView", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Если кто-нибудь может помочь...
Спасибо за вашу помощь!
2 ответа
Я наконец сделал fbsdk для работы (24/04/2016). Чтобы суммировать различные шаги в случае, если вы столкнулись с той же проблемой:
- Если вы встретите
The 'YourApp [Debug]' target overrides the 'OTHER_LDFLAGS' build setting...
предупреждение после командыpod install
,$(inherited)
должен быть добавлен в основных настройках сборки проекта, а не в модулях - UIUserInterfaceIdiomTV пока не распознается по неизвестной причине, поэтому в AppDelegate.m, если вы получили ошибку, просто просмотрите случай с коммутатора
- Список info.plist должен содержать несколько строк, которые (пока) не упомянуты в руководстве по установке sdk. Вот полный список того, что вы должны добавить:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb{your-app-id}</string> </array> </dict> </array> <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array> <key>FacebookAppID</key> <string>{your-app-id}</string> <key>FacebookDisplayName</key> <string>{your-app-name}</string>
Не забудьте заменить {your-app-id} на... id вашего приложения, а {your-app-name} на имя вашего приложения. Всем удачи!
Эта статья прямо отвечает на ваш вопрос... https://colinramsay.co.uk/2016/04/29/go-serverless.html
Я скопирую / вставлю соответствующие детали, потому что я знаю, что ссылка не является достойным ответом на SOF.
Давайте установим Facebook React Native SDK через npm, который даст нам красивую кнопку входа бесплатно:
npm install --save react-native-fbsdkcore react-native-fbsdklogin
Нам нужно установить некоторый нативный код, чтобы сделать эту работу, поэтому давайте сделаем это с CocoaPods. Сначала мы создаем подфайл:
cd ios
pod init
Отредактируйте файл, который был только что создан в FacebookAwsReactNative/ios/Podfile, и добавьте следующее:
source 'https://github.com/CocoaPods/Specs.git'
pod 'React', :subspecs => ['Core', 'RCTImage', 'RCTNetwork', 'RCTText', 'RCTWebSocket'], :path => '../node_modules/react-native'
pod 'react-native-fbsdkcore', :path => '../node_modules/react-native-fbsdkcore'
pod 'react-native-fbsdklogin', :path => '../node_modules/react-native-fbsdklogin'
pod 'react-native-fbsdkshare', :path => '../node_modules/react-native-fbsdkshare'
Возможно, вам придется выполнить некоторые другие шаги здесь, в соответствии с документацией Facebook. Иди и прочитай этот раздел на всякий случай. Давайте установим стручки, а затем нам придется немного поработать в Xcode.
pod install
open FacebookAwsReactNative.xcworkspace
Обратите внимание, что теперь мы используем файл xcworkspace, а не файл xcodeproj; это необходимо для CocoaPods, чтобы делать свое дело.
Разверните папку FacebookAwsReactNative > Libraries и выберите все элементы в ней и удалите ссылки на них. Это потому, что мы решили использовать CocoaPods для React Native (см. pod 'React'
строка, которую мы добавили в Podfile), поэтому элементы в библиотеках являются дубликатами.