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

Expo Managed应用中如何成功完成expo-facebook的基础配置

问题根因

  • 当前使用的Expo 42为2021年发布的旧版本,配套的expo-facebook 12.0.3内置的Facebook SDK版本远低于Facebook官方要求的最低支持版本,因此后台触发SDK升级提示
  • Expo 42版本原生层面默认不会自动配置Facebook要求的SKAdNetwork相关参数,因此会出现第二个待处理任务
  • 开发阶段使用Expo Go运行时,expo-facebook的部分原生配置不会生效,只有打包为独立APK/IPA或使用自定义开发客户端后,配置才能被Facebook后台识别
  • 你提供的app.json片段存在配置层级错误:所有facebook开头的配置项需要放在expo对象内部,当前配置处于expo对象外,无法被Expo编译逻辑读取,直接导致配置不生效

解决方案

方案一:升级到高版本Expo(推荐,可长期适配Facebook最新规则)

  1. 将Expo版本升级至49及以上,废弃原有expo-facebook包,改用官方推荐的react-native-fbsdk-next包,同时在app.json中配置对应的Expo插件,插件会自动完成SKAdNetwork参数注入、最新版本FB SDK引入等全量配置
  2. 升级完成后重新构建自定义开发客户端或者打包正式版本,安装运行后Facebook后台会自动识别到最新SDK版本,SDK升级提示将自动消失
  3. 插件配置完成后,SKAdNetwork相关项会自动添加到IPA的编译配置中,无需手动修改原生代码

方案二:适配当前Expo 42版本(临时可用,不推荐长期使用)

  1. 先修正app.json的配置层级,将所有facebook开头的配置项移动到expo对象内部,正确格式参考如下:
{
  "expo": {
    "<不相关配置项>": "对应值",
    "facebookAdvertiserIDCollectionEnabled": true,
    "facebookAppId": "<我方15位Facebook应用ID>",
    "facebookAutoInitEnabled": true,
    "facebookAutoLogAppEventsEnabled": true,
    "facebookDisplayName": "<我方含空格的3字应用显示名>",
    "facebookScheme": "fb<我方15位Facebook应用ID>"
  }
}
  1. 手动将Facebook要求的SKAdNetwork ID列表添加到app.json的ios.infoPlist字段下
  2. 不要使用Expo Go测试Facebook相关功能,必须打包为正式的IPA/APK安装到测试设备,运行至少一次触发SDK上报后,Facebook后台才会同步识别配置

验证步骤

所有配置修改完成后,打包正式版本安装到测试设备,打开应用触发一次启动事件,等待24小时左右查看Facebook后台的待处理任务状态,正常情况下两个待处理项会自动标记为完成,同时开始展示基准数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:03