在那里把SQLite数据库,以保持它被在OS X更新过程中过度缠身?(Where to put SQ

2019-08-05 06:55发布

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

该应用程序利用我目前保持在同一个位置的应用程序文件相关的其他SQLite数据库中。

我使用Qt框架开发应用程序。

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

  • 我在哪里可以找到数据库文件,它不会在应用程序的更新被覆盖?

  • 我应该如何结构。应用程序文件夹和所有的依赖?

谢谢。

Answer 1:

你的问题意味着你正在写的SQLite数据库,这是给将被存储在一个位置的应用程序(一个坏主意/Applications ),用户可能没有写访问权限。

你应该做的就是复制/创建数据库用户写入区(该Documents在第一次使用应用程序的容器会做的文件夹)(或当你发现它不存在),并从那里使用它。

编辑 :为了获得文件目录使用此代码:

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

这会给你的应用程序容器的位置Documents目录,当应用程序是沙箱而不是用户的文档目录:

~/Library/Containers/com.yourdomain.yourapp/Data/Documents


文章来源: Where to put SQLite database to keep it from being over-ridden during update on OS X?