[英]IOS rejected from AppStore
通常,這意味着您正在將一些數據,緩存文件或配置文件圖像存儲在應用程序可以重新創建/重新下載的位置,例如iCloud將要備份的位置。 這浪費了用戶的數據和蘋果的服務器空間。 在過去大約六個月的時間里,他們確實一直在嚴厲打擊此事。
您可以將文件存儲在沒有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
問題在於您的應用程序首先存儲252.96MB的數據!
您不能以這種方式設計應用程序。 請記住,用戶只有有限的存儲和備份空間。 Apple的文檔非常清楚此處的規則:
https://developer.apple.com/icloud/documentation/data-storage/index.html
您應該只將大數據存儲在Caches目錄中,在該目錄中可以清除大數據並且在不備份該數據。
如果要存儲大量可以再次下載或重新生成的數據,則需要將其存儲在<Application_Home>/Library/Caches
而不是<Application_Home>/Documents
目錄中。
或者,您可以使用應用程序委托中的addSkipBackupAttributeToItemAtURL
方法阻止設備將某些文件備份到iCloud。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.