IOS - 我的应用程序在从iCloud备份

时间:2016-05-16 01:57:57

标签: ios objective-c

我有一个应用程序,当我发送Apple评论时,我的应用程序被拒绝

  

2.23详细信息

     

在启动和内容下载时,您的应用会在用户的iCloud上存储9.94 MB,这不符合iOS数据存储指南。

     

后续步骤

     

请确认iCloud仅根据iOS数据存储指南的要求备份用户使用您的应用创建的内容,例如文档,新文件,编辑等。另外,检查应用程序使用的任何临时文件是否只存储在/ tmp目录中;请记住,在确定不再需要这些文件时,请删除或删除存储在此位置的文件。

     

可以重新创建但必须保持应用程序正常运行的数据 - 或者因为用户希望它可供离线使用 - 应标记为"不要备份"属性。对于NSURL对象,请添加NSURLIsExcludedFromBackupKey属性以防止备份相应的文件。对于CFURLRef对象,请使用相应的kCRUFLIsExcludedFromBackupKey属性。

     

资源

     

要检查应用存储的数据量:

- Install and launch your app

- Go to Settings > iCloud > Storage > Manage Storage

- Select your device

- If necessary, tap "Show all apps"

- Check your app's storage
     

有关防止文件备份到iCloud和iTunes的其他信息,请参阅技术问答1719:如何防止文件备份到iCloud和iTunes。

     

如果您在复制报告的问题时遇到困难,请尝试测试技术Q& A QA1764:如何重现针对App Store提交的错误报告中描述的工作流程。

     

如果您在使用上述资源后遇到代码级问题,则可以咨询Apple Developer技术支持。当DTS工程师跟进您时,请准备好提供:

     
      
  • 您的拒绝问题的完整详情

  •   
  • 截图

  •   
  • 重现问题的步骤

  •   
  • 符号化崩溃日志 - 如果您的问题导致崩溃日志

  •   

在我的应用中,我使用以下代码从iCloud备份中排除了文件: 文件AppDelegate.m,我在应用程序中添加了以下代码:didFinishLaunchingWithOptions:排除所有文件和目录:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSArray *documents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:nil];
NSURL *URL;
NSString *completeFilePath;
for (NSString *file in documents) {
    completeFilePath = [NSString stringWithFormat:@"%@/%@", basePath, file];
    URL = [NSURL fileURLWithPath:completeFilePath];
    NSDictionary *values = [URL resourceValuesForKeys:@[NSURLIsExcludedFromBackupKey] error:nil];
    if ([values[NSURLIsExcludedFromBackupKey] boolValue] == NO) {
        NSLog(@"To exclude from iCloud backup: %@", completeFilePath);
        [URL setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:nil];
    }
}

任何人都可以说明我的错误在哪里?谢谢!

0 个答案:

没有答案