【问题标题】:How can I get the 'facebookScheme' for iOS in an Expo project?如何在 Expo 项目中获得适用于 iOS 的“facebookScheme”?
【发布时间】:2021-08-26 13:45:43
【问题描述】:
expo-facebook 上的 Expo 文档说我需要将 facebookScheme 设置添加到我的 app.json 文件中。
要获得它,文档说我可以访问the Facebook documentation。
Facebook 文档说我需要配置一堆需要 Xcode 项目的东西。比如配置Info.plist文件,或者安装一些需要Cocoapods..等的依赖
但是世博不会把这个文件暴露给我,毕竟是世博项目!
那我在这里做什么呢?我是否需要以某种方式将此 Expo 项目与 Xcode 项目相关联?我需要退出世博会吗?
只是为了添加一些上下文(可能相关或不相关),我问这个的主要原因是因为当我尝试在 iOS 上使用 Facebook 登录时,我的应用程序崩溃了(SIGABRT 错误)!我怀疑这是因为缺少facebookScheme 字段。
谢谢
【问题讨论】:
标签:
ios
react-native
facebook
expo
facebook-login
【解决方案1】:
所以,我很笨。
我以为我必须按照 FB 文档中提到的步骤进行操作,但事实并非如此。我只需要访问它,直接进入第 4 步并复制值 CFBundleURLSchemes(这是我正在寻找的 facebookScheme)、FacebookAppID 和 FacebookDisplayName,然后粘贴到 app.json 文件中。
请记住使用您的 FB 开发帐户登录,然后在上述 FB 文档中的第 1 步中选择您的 FB 应用程序。
这解决了我点击 FB 按钮时应用程序崩溃的问题。
【解决方案2】:
为了清晰起见,因为我比 OP 还要笨,所以你必须得到 CFBundleURLSchemes 之后的字符串值。从字面上将以下内容放入您的 app.json 中:
{
"expo": {
"facebookScheme": "fb<probably_your_fb_appId_here>",
"facebookAppId": "<definitely_your_fb_appId_here>",
"facebookDisplayName": "<your_app_name_here>",
"facebookAutoLogAppEventsEnabled": false,
"facebookAdvertiserIDCollectionEnabled": false
},
"name": "external_login"
}
对于功能齐全的应用,您还需要 app.json 附带的其他值。