React-Native AsyncStorage 使用 iPhone 模拟器将数据保存在磁盘的什么位置?

Where does React-Native AsyncStorage save data on disk using iPhone Simulator?

使用IOS模拟器,React-Native AsyncStorage将数据保存在磁盘的什么位置?

我正在使用 IOS 模拟器版本 10.0 和 运行 IOS 10.2 和 react-native 0.40.0

React Native 异步存储数据位于应用程序沙箱的 Documents 文件夹中。对于 react-native 0.40.0,它是 Documents/RCTAsyncLocalStorage_V1/manifest.json.

iOS 模拟器 (Xcode 8.2) 的沙箱文件夹路径为:~/Library/Developer/CoreSimulator/Devices/{DEVICE_ID}/data/Containers/Data/Application/{APP_ID}

要查找 DEVICE_ID,您可以从终端使用 xcrun simctl list。 由于您的应用程序在每个 运行 上都有新的 APP_ID,因此您无法轻松找到它。我简单地列出应用程序中的所有文件并获取最新更新。有关其他解决方案,请参阅 Xcode 6 keeps renaming my app's directory in iOS8 simulator after each run. 和相关内容。

根据其他有用的评论和答案,让我总结一下如何检查 AsyncStorage:

首先,cd进入Async目录。

cd `xcrun simctl get_app_container booted $BUNDLE_ID data`/Documents/RCTAsyncLocalStorage_V1

然后查看清单:

jq < manifest.json

然后在清单中打印一个非空值:

jq '."somekey"|fromjson' < manifest.json

对于 null 值,查找具有以下值的文件:

md5 -s "otherkey"
# 90f5ba064f8280d4c94b1f0b1a85a79e

然后漂亮地打印该文件:

jq < 90f5ba064f8280d4c94b1f0b1a85a79e

我也在 gist

中分享了这个