Xcode 6 iPhone模拟器应用程序支持位置

137
在 Xcode 6 中,我正在使用 Core Data 的应用程序,但是在 iOS 8 iPhone 模拟器的 Application Support 文件夹中找不到任何文件夹。我的文件和 Core Data sqlite 数据库存储在哪里?

尝试使用这个链接。有一个应用程序可以直接打开最近运行的应用程序的文档目录。 - NSRover
我添加了一个答案(在其他答案的底部),展示了如何以编程方式获取Core Data文件所在的路径。 - SpokaneDude
请查看此链接:https://dev59.com/o2Af5IYBdhLWcg3w7mU_#27461267 - Tunvir Rahman Tusher
使用 "NSTemporaryDirectory()"。查看此链接 - https://dev59.com/JnNA5IYBdhLWcg3wC5bh#32087374 - Shubhendu
16个回答

1
模拟器将文件放置在~/Library/Developer/CoreSimulator/Devices/...,但是/Devices后的路径对每个人都不同。
使用这个方便的方法。它返回当前用户的临时目录路径,并且不需要任何参数。
NSString * NSTemporaryDirectory ( void );

在我的ViewController类中,我通常在viewDidLoad方法中加入这行代码,以便在需要获取CoreData存储文件时进行参考。希望这有所帮助。
  NSLog(@"FILE PATH :%@", NSTemporaryDirectory());

(注意:若要进入该路径,在 Finder 菜单中点击“前往”,输入“~/Library”以打开隐藏目录,然后在Finder窗口中,您可以单击控制台上显示的路径。)

1
模拟器位于:
~/Library/Developer/CoreSimulator/
在这里,它们被列为UUID名称的目录。 按“修改日期”排序以查找最新的模拟器。 在内部导航到:
/data/Containers/Data/Application/
在此处,您将获得该设备上所有应用程序的列表。 您可以再次对其进行排序以获取最新的应用程序。
注意: Xcode每次运行应用程序时都会更改目录名称,因此不要依赖于在桌面上创建别名/快捷方式。
最简单的方法是使用应用程序 here,它会自动完成所有操作。

1
在Swift 4或Swift 5中,您可以使用NSHomeDirectory()。在Xcode 10(或Xcode 11)中最简单的方法是暂停您的应用程序(例如当它遇到断点时),并在调试器控制台中运行此行:
po NSHomeDirectory()

"

po代表打印对象,可以打印大部分内容。

"

0
 1.   NSTemporaryDirectory() gives this:

    /Users/spokaneDude/Library/Developer/CoreSimulator/Devices/1EE69744-255A-45CD-88F1-63FEAD117B32/data/Containers/Data/Application/199B1ACA-A80B-44BD-8E5E-DDF3DCF0D8D9/tmp

 2. remove "/tmp" replacing it with "/Library/Application Support/<app name>/"  --> is where the .sqlite files reside

0

这里是上一个使用的模拟器和应用程序的sh。只需运行sh并复制打印的文本,然后运行命令以在Finder中显示。

#!/bin/zsh

lastUsedSimulatorAndApplication=`ls -td -- ~/Library/Developer/CoreSimulator/Devices/*/data/Containers/Data/Application/*/ | head -n1`

echo $lastUsedSimulatorAndApplication

0
  1. 使用Swift 4,您可以使用以下代码获取应用程序的主目录。您的应用程序文档目录在其中。

    print(NSHomeDirectory())

  2. 我认为您已经知道您的应用程序主目录是可更改的,因此如果您不想向您的代码库添加其他代码,SimPholder是一个不错的工具。

  3. 而且,您可能会想知道是否有一种工具,可以帮助您节省时间,避免每次更改应用程序主目录后都要关闭和重新打开相同的SQLite数据库。答案是肯定的,我知道的一个工具是SQLiteFlow。从它的文档中可以看到:

    处理数据库文件名或目录更改。这使得SQLiteFlow可以与iOS模拟器中的SQLite数据库友好地工作。


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