【问题标题】:Where is my database located of my MacOS app?我的 MacOS 应用程序的数据库位于何处?
【发布时间】:2016-10-22 21:57:19
【问题描述】:

使用 Core Data 时,MacOS 应用程序的数据库位置是什么?

我在 Mac 上到处搜索,但没有找到。
我关闭了隐藏文件,我确定我的数据库中有数据。 我也不使用应用沙盒。

【问题讨论】:

    标签: macos cocoa core-data macos-sierra


    【解决方案1】:

    如果您为您的应用启用了沙盒,它将被放置在~/Library/Containers/app.bundle.id/Data/Library/Application Support/AppTargetName 下,其中 app.bundle.id 是在您的应用目标中指定的捆绑标识符,AppTargetName 是该目标的名称,即生成的名称.app 文件。在该文件夹中,您应该可以找到包含数据库数据的 SQLite 文件。

    【讨论】:

      【解决方案2】:

      在您的AppDelegate.m 中查找persistentStoreCoordinator 方法。有一条线

      NSURL *applicationDocumentsDirectory = [self applicationDocumentsDirectory];
      

      只需添加

      NSLog(@"myDirectory: %@", applicationDocumentsDirectory);
      

      这假设您使用带有“使用核心数据”选项的 Xcode 8 Cocoa 模板开始您的项目。

      或添加

      NSLog(@"Array of CD stores: %@", self.persistentStoreCoordinator.persistentStores);
      

      applicationDidFinishLaunching,例如。生成的路径应该在您的用户库中Users/<user>/Library/Application Support/<whatever>/<appname>.storedata

      【讨论】:

      • 谢谢。数据库位于文件夹中:com.apple.toolsQA.CocoaApp_CD。现在我需要密码才能打开应用程序“SQLite 的 DB 浏览器”,请问在哪里可以找到?
      • 请更具体。为什么需要“SQLite 数据库浏览器”?为什么需要密码?
      • 我想以原始方式管理我的数据库,我的意思是没有 Xcode。就像您可以在 MyAdminPHP 中管理 MySQL 数据库一样。所以我有一个可以打开我的 .SQLite DB 的应用程序,但它需要密码。
      • 打开数据库文件通常不需要密码。我不知道发生了什么。
      【解决方案3】:

      询问您的 NSPersistentStoreCoordinator。

      【讨论】:

        猜你喜欢
        • 2022-12-06
        • 1970-01-01
        • 2018-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        相关资源
        最近更新 更多