升级Expo SDK 48后app.json校验失败及Facebook登录异常求助
解决Expo SDK 48升级后的Facebook相关问题
1. 修复app.json字段校验报错
SDK 48里,Facebook相关配置不再放在app.json根节点,必须移到expo.facebook对象下,同时facebookScheme要改成fb<你的FB应用ID>格式。调整后的app.json结构参考:
{ "expo": { "name": "你的项目名称", "slug": "你的项目Slug", "version": "1.0.0", // 其他基础配置保留 "facebook": { "appId": "你的FB应用ID", "displayName": "你的FB应用显示名称", "scheme": "fb你的FB应用ID" }, "ios": { "bundleIdentifier": "你的iOS包名", "scheme": ["fb你的FB应用ID", "你的其他Scheme"] }, "android": { "package": "你的Android包名", "intentFilters": [ { "action": "VIEW", "data": [{"scheme": "fb你的FB应用ID"}], "category": ["BROWSABLE", "DEFAULT"] } ] } } }
- 根节点下的
facebookScheme、facebookAppId、facebookDisplayName要彻底删除,全部移到expo.facebook内部。
2. 修复Facebook登录失效问题
针对originalFullName未定义的错误,按以下步骤处理:
- 安装最新版
expo-constants:expo install expo-constants - 执行命令验证
originalFullName是否存在:
检查输出里有没有expo config --type publicoriginalFullName字段,要是没有,确认app.json里expo.name和expo.slug配置正确,项目没被乱改重命名。 - 彻底清理并重建原生应用:
expo prebuild --clean # 开发环境也可以直接跑 expo run:ios expo run:android - 确认登录代码配置正确,比如用
expo-facebook的初始化代码:
或者用import * as Facebook from 'expo-facebook'; await Facebook.initializeAsync({ appId: '你的FB应用ID', });AuthSession的方式时,确保redirect_uri和client_id配置准确。
验证步骤
- 跑
expo config --type public,确认expo.facebook配置正确,且originalFullName存在。 - 执行
expo start --clear清缓存后启动项目。 - 测试Facebook登录功能,确认无报错。
内容的提问来源于stack exchange,提问作者yannisdev
相关产品推荐
相关产品推荐

