原創文章,轉載請注明出處
ios項目,如果有內置下載或者程序動態生成文件的話,就要注意所下載或生成的文件,要不要自動備份到iCloud
如果沒有合適的理由就自動上傳大文件的話,可能在不能通過應用審核. 收到一下類似這樣的答復
We also found that your app does not follow the iOS Data Storage Guidelines, which is required per the App Store Review Guidelines.
例如有人遇到同樣問題 http://stackoverflow.com/questions/16239147/ios-do-not-back-up-attribute
蘋果給出的設置方法:官方文檔 https://developer.apple.com/Library/ios/qa/qa1719/_index.html
應用到項目中, 具體代碼如下
#define DownLoad_Directory "Download_Dir" #pragma mark Download_Dir void DeviceClass::initDownloadDir(){ string l_strDocumentDir = cocos2d::CCFileUtils::sharedFileUtils()->getWritablePath(); l_strDocumentDir.append(DownLoad_Directory); NSString* l_strDownloadDir = [NSString stringWithUTF8String:l_strDocumentDir.c_str()]; NSError* l_error; if (![[NSFileManager defaultManager] fileExistsAtPath:l_strDownloadDir]){ [[NSFileManager defaultManager] createDirectoryAtPath:l_strDownloadDir withIntermediateDirectories:NO attributes:nil error:&l_error]; //Create folder // exclude downloads from iCloud backup NSURL *url = [NSURL fileURLWithPath:l_strDownloadDir]; if(strcmp(g_systemVersion.c_str(), "5.1") >=0 ){ if ([url setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&l_error] == NO) { NSLog(@"Error: Unable to exclude l_strDownloadDir from backup: %@", l_error); } } } //this->setDonotBackupInICloud(); }就是在可寫目錄下建立一個新文件夾, 存放下載文件(需要的話,自動生成的文件也放到這), 並標記這個目錄不會被上傳到iCloud
感謝梅俊同事的提醒
測試方法:
設置->iCloud->管理儲存空間->備份(如果有多設備的話,選擇設備)
應用多的話,點擊"顯示所有應用" 查到你的應用,在iCloud上備份內容的總容量.
打開和關閉這個接口, 會發現, 你的應用在iCloud上的備份mwjg容量是不是一樣.