你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios應用, 設置不自動備份到iCloud

ios應用, 設置不自動備份到iCloud

編輯:IOS開發綜合

原創文章,轉載請注明出處

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容量是不是一樣.

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved