1

[巨大的更新]
有人给我发了这个,为了用 React Native 安装 fbsdk 更容易阅读: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)

如果有人可以提供帮助...
感谢您的帮助!

4

2 回答 2

1

我终于让 fbsdk 工作了(24/04/2016)。总结不同的步骤,以防您遇到相同的问题:

  • 如果您The 'YourApp [Debug]' target overrides the 'OTHER_LDFLAGS' build setting...在命令后遇到警告pod install,则将在主项目构建设置$(inherited)中添加,而不是在 Pods 中
  • UIUserInterfaceIdiomTV 由于未知原因暂时无法识别,因此在 AppDelegate.m 中,如果您遇到错误,只需从 switch 中略过 case
  • 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} 替换为您的应用程序名称。祝大家好运!

于 2016-04-29T13:40:53.403 回答
1

本文直接回答您的问题... https://colinramsay.co.uk/2016/04/29/go-serverless.html

我将复制/粘贴相关详细信息,因为我知道链接在 SOF 上不是一个不错的答案。

让我们通过 npm 安装Facebook React Native SDK,它将免费为我们提供一个不错的登录按钮:

npm install --save react-native-fbsdkcore react-native-fbsdklogin

我们需要安装一些本机代码来完成这项工作,所以让我们使用 CocoaPods 来完成。首先我们创建一个 Podfile:

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 文档,您可能需要在此处执行一些其他步骤。去阅读该部分以防万一。让我们安装 pod,然后我们将不得不在 Xcode 中闲逛一会儿。

pod install
open FacebookAwsReactNative.xcworkspace

请注意,我们现在使用 xcworkspace 文件而不是 xcodeproj 文件;这是 CocoaPods 执行其任务所必需的。

展开 FacebookAwsReactNative > Libraries 文件夹并选择其中的所有项目并删除对它们的引用。这是因为我们选择为 React Native 使用 CocoaPods(参见pod 'React'我们添加到 Podfile 的行),所以库中的项目是重复的。

于 2016-04-29T16:12:38.557 回答