React Native分享扩展中SharedGroupPreferences.getItem始终返回error 1
排查与解决步骤
1. 确认分享扩展的App Groups配置完整
- 主应用和分享扩展的target都需要在Xcode的
Signing & Capabilities中添加并勾选group.com.projectName,确保两者的App Groups列表完全一致,无拼写、大小写错误。
2. 验证Shared Group标识符完全匹配
- 检查主应用和分享扩展代码中使用的
group.com.projectName是否完全一致,包括空格、标点符号,避免因标识符不匹配导致无法访问。
3. 确保原生依赖正确集成
- 重新执行pod安装,保证依赖代码同步到分享扩展target:
cd ios && pod install && cd .. - 清理Xcode缓存并重启:
执行Product > Clean Build Folder,重启Xcode后先运行主应用,再测试分享扩展。 - 检查分享扩展的
Info.plist,确认App Groups数组中包含group.com.projectName。
4. 确认数据已成功写入
- 在主应用中调用
getItem验证userDetail已成功存储到Shared Group后,再测试分享扩展,避免数据未完成持久化时进行读取。
5. 检查开发者账号与App ID配置
- 确保开发者后台已创建
group.com.projectName这个App Group,且主应用和分享扩展的App ID都关联了该Group。 - 主应用和分享扩展的Bundle Identifier需符合App Groups命名规则(Group标识符必须以
group.开头)。
6. 原生代码验证(排除RN封装问题)
如果以上步骤无效,可通过iOS原生代码测试读取,判断问题是否出在RN层:
if let userDefaults = UserDefaults(suiteName: "group.com.projectName") { if let userDetail = userDefaults.string(forKey: "userDetail") { print("获取到数据:\(userDetail)") } else { print("未找到数据") } } else { print("无法访问Shared Group") }
- 若原生代码能读取,需排查
react-native-shared-group-preferences的集成问题;若原生也无法读取,继续检查iOS系统级配置。
内容的提问来源于stack exchange,提问作者Vijayakumar KTM
相关产品推荐
相关产品推荐

