应用拒绝原因:3.0在您提交之前:ICLOUD甚至在NSURLIsExcludedFromBackupKey属性设置

时间:2016-07-14 07:49:29

标签: ios iphone swift icloud

我的应用被拒绝2次出于同样的原因“3.0在您提交之前:ICLOUD”,即我的应用程序将数据存储在用户的iCloud中。这就是苹果公司所说的:

提交之前

在发布和内容下载时,该应用仍会在用户的iCloud上存储7MB,这不符合iOS数据存储指南。

为了澄清,这是指应用程序允许在iCloud设备备份期间备份到用户iCloud帐户的数据。如果数据是由应用程序在启动时生成的(就像在此方案中一样),则不适合使用iCloud进行备份。只有在用户生成和创建内容(文档,照片,电子表格等)时,才允许使用广泛的iCloud备份。

后续步骤

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

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

现在我已经实现了NSURLIsExcludedFromBackup标志,并为整个Library& amp;设置为true。文件目录。我使用下面的代码:

func addSkipBackupAttributeToItemAtURL(filePath:String) -> Bool
{
    let URL:NSURL = NSURL.fileURLWithPath(filePath)
    assert(NSFileManager.defaultManager().fileExistsAtPath(filePath), "File \(filePath) does not exist")
    var success: Bool
    do {
        try URL.setResourceValue(true, forKey:NSURLIsExcludedFromBackupKey)
        print("Done")
        success = true
    } catch let error as NSError {
        success = false
        print("Error excluding \(URL.lastPathComponent) from backup \(error)");
    }

    return success
}

并在didFinishLaunchingWithOptions中调用它,如:

let dirPaths = NSSearchPathForDirectoriesInDomains(.LibraryDirectory,.UserDomainMask, true)
let finalURL = dirPaths[0]
addSkipBackupAttributeToItemAtURL(finalURL as String)

此外,我的应用程序不会创建任何临时文件也不使用文档目录。婴儿我的主要ViewController是静态的,但Apple应用程序评论团队说应用程序存储7mb。

此外,我已卸载应用程序清除缓存并在模拟器上重新安装它设备和已检查的iCloud存储。它也说“没有数据”

能否请您帮助我了解这个7mb审核小组的收集位置。

1 个答案:

答案 0 :(得分:1)

问题是AppIcon文件。当Apple将它们存储在iCloud中时,可能会在应用程序安装时进行跨平台和显示。

转到资产 - >右键单击AppIcon - >获取信息并查看大小。

解决方案:

尝试优化图标,您的问题将得到解决。

要检查:

从手机上卸载应用。 转到设置 - > iCloud - >管理存储 - >选择你的手机 - >请注意下一个备份大小。

安装应用程序并再次查看大小,不应该增加,否则Apple会拒绝。

希望这会有所帮助。