Flutter 应用 "documents and data" iOS 上的磁盘使用率过高
Flutter app "documents and data" disk usage is too high on iOS
我在 Flutter 中为 iOS、Android 和网络编写了一个非常简单的应用程序。
最近,我意识到如果我浏览 iPhone 上的“存储”设置页面,我的产品应用程序(因为它在 App Store 上分发)大约有 500 MB。大部分来自“文档和数据”部分,应用程序本身并不大:
存储页面
这是出乎意料的,因为我唯一特意存储的是一个小型 sqlite 数据库,在我的例子中约为 30 KB。
在 this guide from the Apple support page 之后,我能够下载我的应用程序的容器,它确实大约有 500 MB。事实证明,大部分权重来自 tmp
文件夹内部,如 du -sh AppData/tmp/*
:
的输出所示
0B AppData/tmp/count0fSKCX
0B AppData/tmp/count1N2yFY
32K AppData/tmp/count1tKqnr
0B AppData/tmp/count2BxlSk
24K AppData/tmp/count2VKOVX
0B AppData/tmp/count2tnzwn
[...]
0B AppData/tmp/count8kl1hK
53M AppData/tmp/count8kqOke
0B AppData/tmp/count8ssdC7
[...]
0B AppData/tmp/countZHwkA9
26M AppData/tmp/countZHx1v8
53M AppData/tmp/countZKP9JU
0B AppData/tmp/counta5fYmx
[...]
如果我看一下其中一个 50 多 MB 的巨大文件夹中的内容,这就是需要这么多的东西 space:
du -sh AppData/tmp/countZKP9JU/count/*
26M AppData/tmp/countZKP9JU/count/main.dart.dill
20K AppData/tmp/countZKP9JU/count/main.dart.incremental.dill
26M AppData/tmp/countZKP9JU/count/main.dart.swap.dill
我找不到关于这些文件的有用文档,因为我不确定要查找什么:是我的 Dart 配置、Flutter 配置、App 配置中的问题,...?各位大侠能赐教吗?
编辑:这是一些可能有用的版本信息
- Flutter 2.5.1 • 通道稳定 • https://github.com/flutter/flutter.git
- 框架 • 修订版 ffb2ecea52(5 周前) • 2021-09-17 15:26:33 -0400
- 引擎 • 版本 b3af521a05
- 工具 • Dart 2.14.2
- iOS版本:15.0.2
为了防止有人遇到同样的问题,我最终在启动时编写了自己的清理逻辑,调用 getApplicationDocumentsDirectory().parent.list()
然后删除 tmp
子文件夹(如果存在)。
我不知道这到底是否有必要,因为这个 tmp
文件夹无限增长可能只是因为我一直在我的 phone 上安装开发版本。但无论如何,这个清理步骤可能不会造成伤害。
我在 Flutter 中为 iOS、Android 和网络编写了一个非常简单的应用程序。
最近,我意识到如果我浏览 iPhone 上的“存储”设置页面,我的产品应用程序(因为它在 App Store 上分发)大约有 500 MB。大部分来自“文档和数据”部分,应用程序本身并不大:
存储页面
这是出乎意料的,因为我唯一特意存储的是一个小型 sqlite 数据库,在我的例子中约为 30 KB。
在 this guide from the Apple support page 之后,我能够下载我的应用程序的容器,它确实大约有 500 MB。事实证明,大部分权重来自 tmp
文件夹内部,如 du -sh AppData/tmp/*
:
0B AppData/tmp/count0fSKCX
0B AppData/tmp/count1N2yFY
32K AppData/tmp/count1tKqnr
0B AppData/tmp/count2BxlSk
24K AppData/tmp/count2VKOVX
0B AppData/tmp/count2tnzwn
[...]
0B AppData/tmp/count8kl1hK
53M AppData/tmp/count8kqOke
0B AppData/tmp/count8ssdC7
[...]
0B AppData/tmp/countZHwkA9
26M AppData/tmp/countZHx1v8
53M AppData/tmp/countZKP9JU
0B AppData/tmp/counta5fYmx
[...]
如果我看一下其中一个 50 多 MB 的巨大文件夹中的内容,这就是需要这么多的东西 space:
du -sh AppData/tmp/countZKP9JU/count/*
26M AppData/tmp/countZKP9JU/count/main.dart.dill
20K AppData/tmp/countZKP9JU/count/main.dart.incremental.dill
26M AppData/tmp/countZKP9JU/count/main.dart.swap.dill
我找不到关于这些文件的有用文档,因为我不确定要查找什么:是我的 Dart 配置、Flutter 配置、App 配置中的问题,...?各位大侠能赐教吗?
编辑:这是一些可能有用的版本信息
- Flutter 2.5.1 • 通道稳定 • https://github.com/flutter/flutter.git
- 框架 • 修订版 ffb2ecea52(5 周前) • 2021-09-17 15:26:33 -0400
- 引擎 • 版本 b3af521a05
- 工具 • Dart 2.14.2
- iOS版本:15.0.2
为了防止有人遇到同样的问题,我最终在启动时编写了自己的清理逻辑,调用 getApplicationDocumentsDirectory().parent.list()
然后删除 tmp
子文件夹(如果存在)。
我不知道这到底是否有必要,因为这个 tmp
文件夹无限增长可能只是因为我一直在我的 phone 上安装开发版本。但无论如何,这个清理步骤可能不会造成伤害。