You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Expo项目中获取iOS平台的facebookScheme?解决iOS端Facebook登录SIGABRT崩溃问题

解决Expo项目iOS端Facebook登录崩溃(无需Eject或手动关联Xcode)

不用慌,你完全不需要执行expo eject或者手动关联Xcode项目——Expo已经帮你封装好了所有原生配置的流程,只需要在app.json里正确配置就行,我来一步步给你讲:

1. 正确获取facebookScheme的值

你不用跟着Facebook官方的原生文档去改Info.plist,facebookScheme其实就是你的Facebook应用ID前面加上fb前缀。比如你的Facebook App ID是1234567890,那对应的scheme就是fb1234567890。这个App ID可以直接在Facebook开发者后台的应用"基本设置"里找到。

2. 在app.json里配置必要项

打开你的项目根目录下的app.json,在expo节点下添加以下配置:

{
  "expo": {
    // 其他已有配置...
    "facebookScheme": "fbYOUR_FACEBOOK_APP_ID",
    "facebookAppId": "YOUR_FACEBOOK_APP_ID",
    "facebookDisplayName": "YOUR_APP_DISPLAY_NAME",
    "ios": {
      // 其他iOS配置...
      "infoPlist": {
        // 如需申请追踪权限,可添加此字段(可选)
        "NSUserTrackingUsageDescription": "我们需要访问您的设备标识符以提供个性化的Facebook登录服务"
      }
    }
  }
}

注意:把YOUR_FACEBOOK_APP_ID和YOUR_APP_DISPLAY_NAME替换成你自己的实际值。

3. 确认Facebook开发者后台的配置

这一步很关键,很多崩溃问题都是因为后台配置没跟上:

  • 进入Facebook开发者后台,找到你的应用,进入"设置"->"基本",在iOS板块添加你的Expo项目的Bundle ID(这个Bundle ID就是你app.json里ios.bundleIdentifier的值)。
  • 进入"产品"->"Facebook登录"->"设置",在"有效的OAuth重定向URI"里添加fbYOUR_FACEBOOK_APP_ID://authorize(同样替换成你的App ID)。

4. 重新构建你的iOS应用

配置完之后,不要直接用Expo Go测试(因为Expo Go是通用容器,没法包含你的自定义scheme),你需要:

  • 如果你用EAS Build:运行eas build --platform ios构建自定义开发包或者生产包。
  • 如果你用旧的expo build:ios:运行expo build:ios生成IPA文件,然后安装到测试设备上。

为什么不需要Eject?

Expo的核心优势就是帮你屏蔽原生配置的复杂度——当你执行构建命令时,Expo会自动把app.json里的配置转换成Xcode项目所需的Info.plist条目、URL Scheme配置等,完全不用你手动修改原生文件。

如果按照上面的步骤配置后还是崩溃,建议你检查设备的崩溃日志,看看具体的错误信息,但大概率是scheme配置或者Facebook后台设置的问题。

内容的提问来源于stack exchange,提问作者Matheus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 18:57:32