2

我是 Mac 应用程序开发的新手。创建了一个跨网络同步数据的 os x 应用程序,该应用程序必须将数据存储在 sqlite db 文件的表中。信息数据库

例如,当部署应用程序时,带有空表的数据库文件将位于应用程序内部

/Applications/myapp.app/somehere/info.db

第一次运行的应用程序是否应该将此 info.db 移动到其他数据文件夹?或临时目录,在它插入数据之前?还是我应该直接提交对应用程序包内文件的更改?同样,当用户更新以前版本存储的 info.db 中的信息时,新版本将使用该信息。那么,您能建议如何部署它吗?

谢谢,

4

2 回答 2

1

您无法更新应用程序包,因此您必须在首次运行时将空数据库复制到用户目录。如果您希望将此应用程序发布到 Mac App Store,那么它必须是沙盒化的,这意味着您可以放置​​数据库的唯一位置是应用程序容器文件夹中。

您可以使用 获取应用程序容器文件夹NSHomeDirectory(),无论您是否对应用程序进行沙箱处理,该文件夹都可以使用。

于 2013-07-08T15:56:53.793 回答
0

您不想在用户的主文件夹中创建新目录。Apple 为各种用途定义了“标准”目录。在您的情况下,听起来您需要应用程序支持。

将空数据库文件复制到应用程序支持目录。您可以从 NSFileManager 获取应用程序支持的路径/URL,如下所示:

[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
                             inDomains:NSUserDomainMask];

然后将您的应用程序包 ID 添加到该路径并在应用程序支持中创建您自己的文件夹。

Apple 网站上有示例代码和更深入的解释: 在标准目录中定位项目

资源

于 2013-07-14T18:52:38.933 回答