-5

对于我的应用程序,我从苹果那里得到了拒绝的详细信息,但我不知道该怎么做,因为我没有使用 icloud,苹果说你必须请描述我接下来应该做什么。苹果写在下面。

2.23 我们发现您的应用不遵循 iOS 数据存储指南,这是 App Store 审核指南所要求的。特别是,我们发现在启动和/或内容下载时,您的应用程序存储 32MB。要检查您的应用存储了多少数据:

  • 安装并启动您的应用
  • 转到设置 > iCloud > 存储和备份 > 管理存储
  • 如有必要,点击“显示所有应用”
  • 检查您的应用程序的存储 iOS 数据存储指南指出,只有用户使用您的应用程序创建的内容,例如文档、新文件、编辑等,才应由 iCloud 备份。

您的应用程序使用的临时文件应仅存储在 /tmp 目录中;请记住在用户退出应用程序时删除存储在此位置的文件。可以重新创建但必须保留以使您的应用程序正常运行的数据 - 或者因为客户希望它可以离线使用 - 应该使用“不备份”属性进行标记。对于 NSURL 对象,添加 NSURLIsExcludedFromBackupKey 属性以防止相应文件被备份。对于 CFURLRef 对象,使用相应的 kCFURLIsExcludedFromBackupKey 属性。有关更多信息,请参阅技术问答 1719:如何防止文件备份到 iCloud 和 iTunes?。

有必要修改您的应用程序以满足 iOS 数据存储指南的要求。对于离散代码级别的问题,您可能希望咨询 Apple 开发人员技术支持。请务必:

  • 包括您的拒绝问题的完整详细信息
  • 准备任何符号化的崩溃日志、屏幕截图和步骤,以便在 DTS 工程师跟进时重现问题。

有关如何符号化和读取崩溃日志的信息,请参阅技术说明 TN2151 理解和分析 iPhone OS 应用程序崩溃报告。如果您在重现此问题时遇到困难,请尝试按照 使用 Xcode 的存档功能测试工作流程中所述测试工作流程。

4

2 回答 2

6

您必须设置“不备份”属性以让 iphone 管理您在文档目录中下载的所有资源。

将以下代码放在 appdelegate 的 didFinishLaunchingWithOptions 方法中 -

NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDir = [docPath objectAtIndex:0];
    NSURL *pathurl=[NSURL fileURLWithPath:documentDir];

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;
于 2013-03-29T06:22:47.727 回答
0

它清楚地指出,您的应用在启动或内容下载时会在 Documents Directory 中存储 32MB 的数据。Document 目录中的所有数据都会自动备份。

因此,如果您想以相同的方式使用该应用程序,您可以做以下两件事。

1)将您的数据存储在任何其他目录中,例如“Temp”

或者

2)将您的数据标记为“不备份”属性。为此,如果您从 URL 下载任何数据,对于 NSURL 对象,添加 NSURLIsExcludedFromBackupKey 属性以防止相应文件被备份

于 2013-03-29T06:21:17.877 回答