我已将我的申请提交给AppStore,但我的申请已被拒绝。
这是一个原因:
我已经按照此链接工作,但我的申请也被拒绝了。 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected
答案 0 :(得分:3)
这通常意味着您要存储一些数据,缓存文件或配置文件图像,例如,可以在iCloud备份的位置由您的应用重新创建/重新下载。这浪费了Apple的用户数据和服务器空间。在过去6个月左右的时间里,他们一直在坚持这一点。
您可以将文件存储在iCloud(/ Library / Application Support)未备份的位置,也可以使用“不备份”属性标记文件。
使用以下代码获取该文件夹:
NSString* appSupportFolder = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject];
以下是可用于设置“不备份”属性的类别:
@implementation NSURL (DoNotBackupAttribute)
- (BOOL)dw_addDoNotBackupAttribute
{
if (![[NSFileManager defaultManager] fileExistsAtPath:[self path]]) return NO;
__autoreleasing NSError* error = nil;
if (![self setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:&error]) {
NSLog(@"Error: failed to set do not backup attribute on file %@, error: %@", self, [error localizedDescription]);
}
return YES;
}
@end
答案 1 :(得分:0)
问题是你的应用程序首先存储了252.96MB的数据!
您无法通过这种方式设计应用。请记住,用户只有有限的存储和备份空间。 Apple的文档非常清楚这里的规则:
https://developer.apple.com/icloud/documentation/data-storage/index.html
您应该只将大数据存储在Caches目录中,在该目录中可以清除它,以及它不会被备份的位置。
答案 2 :(得分:0)
如果要存储可以重新下载或重新生成的大量数据,则需要将其存储在<Application_Home>/Library/Caches
而不是<Application_Home>/Documents
目录中。
或者,您可以使用应用代理中的addSkipBackupAttributeToItemAtURL
方法阻止设备将某些文件备份到iCloud。