【问题标题】:Rejected by apple due to the sqllite db in documents folder由于文档文件夹中的 sqlite db 而被苹果拒绝
【发布时间】:2013-01-10 08:35:02
【问题描述】:

我有使用 FMDB 包装器的 sqlite db,它在启动时将 db 放入文档文件夹中。用户还可以通过 iTunes 上传文件文件夹中的文件。

但应用商店拒绝了该应用,如下:

启用文件共享后,整个 Documents 文件夹将用于文件共享。不打算通过文件共享功能供用户访问的文件应存储在应用程序包的另一部分中。如果您的应用程序不需要文件共享功能,则 Info.plist 中的 UIFileSharingEnabled 键不应设置为 true。

是否有任何解决方法可以将 db 放在某个位置或限制在文档文件夹中,以便获得苹果的批准。

【问题讨论】:

标签: ios sqlite file-io fmdb nsdocumentdirectory


【解决方案1】:

您必须将文件的路径从文档目录更改为缓存目录:

在您的代码“NSDocumentDirectory”中搜索并替换为“NSCachesDirectory”并让一切都相同,然后您的数据库将在启动时自动移动到缓存目录,Apple 也不会拒绝它。 :)

希望对你有帮助。

编辑:要设置您自己的数据库路径,请在代码中传递“cacheDirectoryPath”字符串而不是路径,下面的代码将为您创建此 cacheDirectoryPath:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cacheDirectoryPath = [paths objectAtIndex:0];

【讨论】:

  • 如果数据库不是只读的,那么 caches 目录是一个不好的选择。缓存目录未备份,并且不会在应用程序更新后继续存在。如果数据是可写的,请使用NSApplicationSupportDirectory。注意这个目录必须先创建。
  • 谢谢,我的数据库不是只读的,所以 NSApplicationSupportDirectory 会是更好的选择。
  • 有人可以向我解释将代码放在哪里吗?它应该在appdelegate中吗? @HassanWaheed
猜你喜欢
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2011-01-02
  • 2017-07-01
  • 1970-01-01
相关资源
最近更新 更多