我正在开发我的第一个 OS X 应用程序,它将通过 Mac App Store 分发。
该应用程序使用了一个 sqlite 数据库,我目前将其保存在与其他应用程序文件依赖项相同的位置。
我正在使用 Qt Framework 来开发应用程序。
保持在 App Store 规则的范围内;
在哪里可以找到数据库文件以使其在应用程序更新期间不会被覆盖?
我应该如何构建 .app 文件夹和所有依赖项?
谢谢你。
我正在开发我的第一个 OS X 应用程序,它将通过 Mac App Store 分发。
该应用程序使用了一个 sqlite 数据库,我目前将其保存在与其他应用程序文件依赖项相同的位置。
我正在使用 Qt Framework 来开发应用程序。
保持在 App Store 规则的范围内;
在哪里可以找到数据库文件以使其在应用程序更新期间不会被覆盖?
我应该如何构建 .app 文件夹和所有依赖项?
谢谢你。
您的问题暗示您正在写入 sqlite 数据库,这是一个坏主意,因为应用程序将存储在/Applications
用户可能没有写入权限的位置 () 中。
您应该做的是Documents
在第一次使用时(或者当您检测到它不存在时)将数据库复制/创建到用户可写区域(应用程序容器的文件夹将执行)并从那里使用它。
编辑:为了获取 Documents 目录,请使用以下代码:
NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
这将为您提供应用程序容器Documents
目录的位置,而不是应用程序被沙盒化时用户的 Documents 目录:
~/Library/Containers/com.yourdomain.yourapp/Data/Documents