无代码库情况下如何备份已上线React Native应用的Realm DB数据
无代码库导出React Native应用Realm本地存储数据操作指南
前置要求
- 拥有目标应用的Android签名权限或iOS开发者调试权限
- 可获取安装了目标应用的实体设备/模拟器,应用本地数据未被清空
- 若线上正式包关闭了调试/备份权限,需使用同包名、同签名/同开发者账号的可调试版本覆盖安装,覆盖操作不会删除原有本地存储数据
Android端操作步骤
- 开启设备USB调试,连接电脑后执行
adb devices确认设备连接正常 - 执行备份命令,将命令中
[应用包名]替换为目标应用的包名:adb backup -f realm_backup.ab -noapk [应用包名] - 设备端弹出备份确认窗口,无需设置密码直接确认即可完成备份
- 备份完成后将生成的
realm_backup.ab文件转为tar压缩包,可使用ab工具执行命令:java -jar abe.jar unpack realm_backup.ab realm_backup.tar - 解压tar压缩包,在
apps/[应用包名]/f/目录下即可获取后缀为.realm的数据库文件
注意:Android 11及以上系统对adb备份权限做了限制,若上述操作失败,可使用root后的设备直接访问
/data/data/[应用包名]/files/目录拷贝Realm文件,或临时将应用清单中的android:allowBackup属性设为true后打包覆盖安装再执行备份。
iOS端操作步骤
实体设备操作
- 将iOS设备连接Mac,打开Xcode,进入
Window > Devices and Simulators页面 - 在已连接设备的应用列表中找到目标应用,点击下方齿轮图标选择
Download Container - 选择存储路径后会生成后缀为
.xcappdata的容器文件,右键点击该文件选择「显示包内容」 - 依次进入
AppData/Documents/目录,即可找到对应的.realm数据库文件
模拟器操作
- 打开Finder,访问路径
~/Library/Developer/CoreSimulator/Devices/,找到对应模拟器的UUID目录 - 进入
data/Containers/Data/Application/目录,找到对应应用的UUID目录,进入Documents即可获取Realm文件
导出后校验与存储
- 可使用Realm Studio打开导出的
.realm文件,校验数据完整性 - 若开发时对Realm开启了加密,需使用当时设置的加密密钥才可打开文件,无密钥无法读取加密数据
- 备份时建议同步保存
.realm对应的.realm.lock、.realm.management目录,避免数据文件损坏无法读取
内容的提问来源于stack exchange,提问作者Samarth
相关产品推荐
相关产品推荐

