You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter应用中shared_preferences文件在Android与iOS平台的存储位置咨询

Flutter应用中shared_preferences文件在Android与iOS平台的存储位置咨询

嗨,这个问题我刚好熟,给你分平台捋清楚具体位置,方便你找到对应的文件查看存储的键值对:

Android 平台

Flutter的shared_preferences在Android上是直接封装了原生的SharedPreferences,所以存储文件是XML格式的,具体位置分两种情况:

模拟器/已Root的真机

直接通过文件路径访问:

/data/data/<你的应用包名>/shared_prefs/<你的应用包名>_preferences.xml

注意:把<你的应用包名>替换成你项目里的实际包名(比如com.example.my_flutter_app),可以在android/app/src/main/AndroidManifest.xml里找到这个包名。

  • 快速访问方式:用Android Studio自带的Device File Explorer(右侧边栏就能找到),直接导航到上述路径,找到对应的XML文件后,右键选择“Save As”导出到本地就能查看里面的键值对了。

未Root的普通真机

因为Android的沙盒权限限制,你没法直接访问/data目录,这时候可以用两种方法:

  • 用Android Studio的Device File Explorer,找到目标XML文件后,点击顶部的Pull a file from the device按钮(向下箭头图标),把文件导出到本地查看;
  • 用adb命令备份应用数据,再提取文件:
    adb backup -noapk <你的应用包名>
    
    执行后会生成一个backup.ab文件,你可以用工具把它转成ZIP格式,解压后就能在apps/<你的应用包名>/sp/路径下找到对应的XML文件。

iOS 平台

iOS上shared_preferences封装的是原生的NSUserDefaults,存储文件是PLIST格式,位置同样分模拟器和真机:

iOS 模拟器

文件路径如下:

~/Library/Developer/CoreSimulator/Devices/<设备UUID>/data/Containers/Data/Application/<应用UUID>/Library/Preferences/<你的应用包名>.plist
  • 设备UUID:打开Xcode,点击顶部菜单Window > Devices and Simulators,选中你正在使用的模拟器,右侧的Identifier就是UUID;
  • 应用UUID:那个目录下的文件夹都是随机字符串命名的,可以通过文件夹的创建时间(对应你安装应用的时间)来判断,或者直接用终端命令快速搜索:
    find ~/Library/Developer/CoreSimulator -name "<你的应用包名>.plist"
    
    执行后会直接返回对应的plist文件路径,复制路径到Finder里打开就行。

iOS 真机

同样因为沙盒机制,没法直接访问文件系统,步骤如下:

  1. 打开Xcode,点击Window > Devices and Simulators
  2. 选中你的真机设备,在“Installed Apps”里找到你的Flutter应用;
  3. 点击应用条目下方的Download Container,把应用的沙盒数据下载到本地(会得到一个.xcappdata文件);
  4. 右键点击这个.xcappdata文件,选择Show Package Contents
  5. 导航到Library/Preferences目录,就能找到你的应用包名对应的.plist文件,打开就能看到存储的键值对了。

最后提个小提醒:不管是Android还是iOS,只有当你的应用至少运行过一次,并且调用了shared_preferences的写入操作后,对应的文件才会被创建哦,如果没找到文件,先确认应用有没有执行过存储操作~

火山引擎 最新活动