【问题标题】:Application rejected because of not following iOS Data Storage Guidelines申请因未遵循 iOS 数据存储指南而被拒绝
【发布时间】:2012-02-07 17:46:45
【问题描述】:

我们正在将数据存储到应用程序的文档目录中,但我们的应用程序被拒绝了。我们已经尝试使用“不备份”属性在当前版本中使用以下代码存储数据。

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL{

    const char* filePath = [[URL path] fileSystemRepresentation];

    const char* attrName = "com.apple.MobileBackup";

    u_int8_t attrValue = 1;

    int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);

    return result == 0;

}

我们已按照 iOS 数据存储指南使用它。

在早期版本中,我们还尝试将数据存储在 Private 目录中。但是,我们无法获得申请的批准。

您能否详细说明一下为什么我们无法获得申请批准?或者,我们还需要对有关数据存储的代码进行任何其他更改吗?因此,我们可以获得批准,并且我们在 iTunes 上推出了新版本的应用程序。

【问题讨论】:

  • 您到底存储了什么,为什么?缓存的项目应该放在 Caches 目录中,任何用户创建的数据都应该存储在 Documents 中,其他东西应该在 Application bundle 或 tmp 目录中。
  • 感谢您的 cmets。我有大型数据库文件,还保存单词的声音文件。我首先尝试保存在文档中,然后尝试使用“不备份”属性。那么,你能告诉我我应该怎么做才能批准申请吗?

标签: iphone ios appstore-approval


【解决方案1】:

我认为@Jasarien的评论是正确的答案,但是没有进一步的交流,而且这个问题比较新,所以我会扩展。

让其他人看到你收到的拒绝:

iOS 数据存储指南指定:

  1. 只有用户生成的或您的应用程序无法重新创建的文档和其他数据,才应存储在 /Documents 目录中,并由 iCloud 自动备份。

    李>
  2. 可以再次下载或重新生成的数据应存储在 /Library/Caches 目录中。您应该放在 Caches 目录中的文件示例包括数据库缓存文件和可下载内容,例如杂志、报纸和地图应用程序使用的内容。

  3. 仅临时使用的数据应存储在 /tmp 目录中。尽管这些文件没有备份到 iCloud,但请记住在完成后删除这些文件,以免它们继续占用用户设备上的空间。

  4. 使用“不备份”属性来指定应保留在设备上的文件,即使在存储空间不足的情况下也是如此。将此属性用于可以重新创建但即使在存储空间不足的情况下也需要保留的数据,以便您的应用程序正常运行,或者因为客户希望它在离线使用期间可用。此属性适用于标记的文件,无论它们位于哪个目录,包括 Documents 目录。这些文件不会被清除,也不会包含在用户的 iCloud 或 iTunes 备份中。由于这些文件确实会使用设备上的存储空间,因此您的应用负责定期监控和清除这些文件。”

例如,只有用户使用您的应用创建的内容(例如文档、新文件、编辑内容等)可以存储在 /Documents 目录中 - 并由 iCloud 备份。

您的应用程序使用的临时文件应仅存储在 /tmp 目录中;请记住在用户退出应用时删除存储在此位置的文件。

可以重新创建但必须保留以使您的应用正常运行的数据 - 或者因为客户希望它可以离线使用 - 应使用“不备份”属性进行标记。如需更多信息,请参阅技术问答 1719:如何防止文件备份到 iCloud 和 iTunes?。

所以我明白为什么你会使用“不备份”并期望遵守,但我认为就像 @Jasarien 所说的那样 - 它们意味着你要移动到更离散的目录,如缓存或临时目录。

事实上,肯定会通过审查的是切换到 Core Data 并使用内部 SQLite - 但这可能工作量太大。

所以总结一下 - 关于如何保存到缓存或 tmp 的帖子 - Where to save files in iOS 5 applications? (实际上,也许这完全是那个的副本...... :-/)

GL! 奥德

-- 编辑--

另一个好帖子: https://stackoverflow.com/questions/8164868/ios-data-storage-guidelines-available-since-when

-- 编辑#2--

还有一个好帖子: iOS 5 does not allow to store downloaded data in Documents directory?

我想我应该指出重复的地方... :)

【讨论】:

    【解决方案2】:

    看看这个链接http://developer.apple.com/library/ios/#qa/qa1719/_index.html#//apple_ref/doc/uid/DTS40011342 您使用的代码与 5.0.1 兼容,而不是 5.1 及更高版本。您必须将 Cache 用于

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-16
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 2014-09-19
      • 2015-05-06
      相关资源
      最近更新 更多