2

我正在开发我的第一个 OS X 应用程序,它将通过 Mac App Store 分发。

该应用程序使用了一个 sqlite 数据库,我目前将其保存在与其他应用程序文件依赖项相同的位置。

我正在使用 Qt Framework 来开发应用程序。

保持在 App Store 规则的范围内;

  • 在哪里可以找到数据库文件以使其在应用程序更新期间不会被覆盖?

  • 我应该如何构建 .app 文件夹和所有依赖项?

谢谢你。

4

1 回答 1

3

您的问题暗示您正在写入 sqlite 数据库,这是一个坏主意,因为应用程序将存储在/Applications用户可能没有写入权限的位置 () 中。

您应该做的是Documents在第一次使用时(或者当您检测到它不存在时)将数据库复制/创建到用户可写区域(应用程序容器的文件夹将执行)并从那里使用它。

编辑:为了获取 Documents 目录,请使用以下代码:

NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

这将为您提供应用程序容器Documents目录的位置,而不是应用程序被沙盒化时用户的 Documents 目录:

~/Library/Containers/com.yourdomain.yourapp/Data/Documents
于 2013-01-02T13:41:44.567 回答