Realm未按设备同步规则订阅问题求助
Realm Swift SDK 更新后的双重问题排查
问题1:嵌入设置切换引发的运行时库加载错误
通过XCode Package Manager更新Realm包后,按官方文档移除Realm库、保留RealmSwift库并设置为Embed & Sign时,应用无法加载数据;尝试回滚为“不嵌入”时触发以下运行时错误:
dyld[13970]: Library not loaded: @rpath/RealmSwift.framework/RealmSwift Referenced from: <0C0C4659-D88F-3302-B78E-AEF6E29D9636> /private/var/containers/Bundle/Application/C8216C2A-9D4F-4767-BEE4-70F977B5B509/MindCheckAI.app/MindCheckAI Reason: tried: '/Users/itamargil/Library/Developer/Xcode/DerivedData/MindCheckAI-fmefsxngttqathgdnicimkgijggk/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/preboot/Cryptexes/OS/Users/itamargil/Library/Developer/Xcode/DerivedData/MindCheckAI-fmefsxngttqathgdnicimkgijggk/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/C8216C2A-9D4F-4767-BEE4-70F977B5B509/MindCheckAI.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file), '/Users/itamargil/Library/Developer/Xcode/DerivedData/MindCheckAI-fmefsxngttqathgdnicimkgijggk/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/preboot/Cryptexes/OS/Users/itamargil/Library/Developer/Xcode/DerivedData/MindCheckAI-fmefsxngttqathgdnicimkgijggk/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/C8216C2A-9D4F-4767-BEE4-70F977B5B509/MindCheckAI.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file)
问题2:更新后Realm读写权限丢失
已确认用户存在且Realm初始化时可获取用户ID,但日志显示更新后失去读写权限:
更新前(Realm Swift v10.42.4,iOS 17.3.1)日志:
Logs: [ "Roles selected for sync:", " readAndWriteAll: [ Analysis, Answers, Explainer, Form, NotificationPreferences, User ]" ] Function Call Location: DE-FF Query: { "Explainer": "(TRUEPREDICATE)", "Form": "((isPublic == true or creatorID == \"654a172a09bd5f2f6c1d49f0\"))", "NotificationPreferences": "(receiver_id == oid(654a172a09bd5f2f6c1d49f0))", "User": "(_id == oid(654a172a09bd5f2f6c1d49f0))", "Analysis": "(respondent_id == oid(654a172a09bd5f2f6c1d49f0))", "Answers": "(respondent_id == oid(654a172a09bd5f2f6c1d49f0))" } Remote IP Address: 189.62.45.236 SDK: Realm Swift v10.42.4 Platform: iOS vVersion 17.3.1 (Build 21D61)
更新后(Realm Swift v10.50.0,iOS 17.4.1)日志:
Function Call Location: DE-FF Query: {} Remote IP Address: 189.62.45.236 SDK: Realm Swift v10.50.0 Platform: iOS vVersion 17.4.1 (Build 21E236)
排查建议
- 彻底清理Xcode缓存:删除DerivedData文件夹,执行
Shift+Cmd+K清理当前构建,再用Option+Shift+Cmd+K清理完整构建文件夹 - 校验Package依赖:确保RealmSwift的版本在Package.swift中指定为明确版本,避免自动升级带来的依赖冲突;同时检查依赖是否正确添加到主目标
- 确认Embed配置:SwiftUI项目中RealmSwift必须设置为Embed & Sign,检查项目的Frameworks目录下是否存在RealmSwift.framework,若缺失则重新添加并同步依赖
- 核查同步权限规则:
- 登录Realm Dashboard确认
readAndWriteAll角色仍包含所有需要的模型类,权限规则未被修改 - 验证当前用户的身份是否正确关联到对应角色,查看用户角色分配记录
- 登录Realm Dashboard确认
- 版本回滚测试:暂时回滚到v10.42.4版本,确认是否为SDK版本升级引入的兼容性问题;若回滚后恢复,查看官方更新日志中v10.42.4到v10.50.0之间的权限相关变更
- 检查模型类配置:确认所有模型类的
@Persisted属性、分区键等同步配置在更新SDK后未被意外修改
内容的提问来源于stack exchange,提问作者Itamar Gil
相关产品推荐
相关产品推荐

