iOS数据文件夹存储在哪里?

9
在Android系统中,如果你有root权限,你可以访问一个名为/data/data/<package name>的文件夹。在这个文件夹中,你可以找到你的项目所需的数据库或其他文件。
那么,在iOS系统中,如果你越狱了,是否也有类似的文件夹呢?我找到了一些适用于iOS系统的root浏览器,但是我没有找到那个文件夹。
4个回答

12

Android和iOS是完全不同的操作系统,因此您不应该期望它们具有相同的文件系统布局。

在iOS中,通常情况下,应用程序将其数据存储在名为Documents的文件夹中,该文件夹保存在安装应用程序本身旁边的位置(†)。

例如,对于第三方(App Store)应用程序,应用程序安装在/var/mobile/Applications/(†)下,然后是一个带有唯一标识符字符串的文件夹。 在文件夹下,您会找到MyAppName.app应用程序。 在同一级别上,您将看到一个Documents文件夹,该文件夹已经自动为您创建。 因此,完整的文件夹层次结构可能如下所示:

iPhone5:/var/mobile/Applications root# find . -name Netflix.app
./882F75CD-F42D-4532-8C77-D0992192606B/Netflix.app
iPhone5:/var/mobile/Applications root# cd ./882F75CD-F42D-4532-8C77-D0992192606B/
iPhone5:/var/mobile/Applications/882F75CD-F42D-4532-8C77-D0992192606B root# ls
Documents/  Library/  Netflix.app/  StoreKit/  iTunesArtwork  iTunesMetadata.plist  tmp/

请注意,您不需要越狱手机即可访问此文件夹。 您可以在计算机上安装像iBrowse这样的工具,然后使用它来浏览第三方应用程序的文档文件夹。

enter image description here 但是,如果您想要能够浏览文件系统中的任何文件夹,则必须越狱手机,然后可以使用iBrowse或ssh进入任何位置。

另一个需要注意的问题是,如果您正在为越狱设备构建“系统”应用程序,该应用程序将安装在/Applications/而不是/var/mobile/Applications/(†)下,那么您实际上需要手动为您的应用程序创建文档文件夹。有关此内容的更多信息,请参见本教程(请参阅页面底部),或阅读此答案

更新(†)

在最近的iOS版本(8+,我相信),第三方数据文件夹已移动。 位于/var/mobile/Applications/中的内容现在在/var/mobile/Containers/Data/Application/下。 应用程序捆绑包及其数据/文档文件夹已在文件系统上分离。


1
请注意,您的应用程序的唯一标识字符串是文件夹路径的一部分,每次安装或更新应用程序时都会更改。因此,如果您正在保存在SQLite DB中创建的文件的文件系统路径或类似内容,请确保不要存储这些文件的完整绝对路径。 - alsed42

0

iOS应用程序以不同的方式本地存储数据,例如plist(类似于Android中的shared_pref),NSUserDefaults,Core data(sqlite),Keychain。

这些文件可以在应用程序文件夹下使用任何文件浏览器实用程序找到。


0
这个文件夹如果你越狱后,是否在iOS设备上可用呢?
是的。事实上:
- 如果没有越狱:你仍然可以使用一些文件浏览器工具(如iBrowse)来检查它。 - 如果已经越狱:你可以更容易地找到应用程序文件夹,例如使用以下工具之一: - 命令行工具(如ssh之后使用ls命令) - GUI文件管理工具,如爱思助手、Filza 或 iFile 例如:
中文应用程序 抖音 (包ID: com.ss.iphone.ugc.Aweme) 的数据文件夹:
  • /private/var/mobile/Containers/Data/Application
    • 6A9AE298-87E8-4C94-8F85-863CA0904022
      • screenshot
      • 文件夹结构
        • Documents/
          • screenshot
            • 文件夹结构
              • Aweme.db
              • AwemeIM.db
        • Library/
        • StoreKit/
        • SystemData/
        • tmp/
    • /private/var/containers/Bundle/Application/F4E9C01C-9B7F-492F-A024-5045F5C26D4C
      • screenshot
      • 文件夹结构
        • Aweme.app
          • Aweme
        • BundleMetadata.plist

-3

不,除非您(或其他人)创建了它,否则在iOS下默认情况下不存在该文件夹。


7
这应该是一条评论,Michael :) - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接