Why was my application still rejected after excluding files from iCloud backup using this code?

空扰寡人 提交于 2019-11-27 03:00:37

问题


I have added the following code to exclude files from iCloud backup, but my application was still rejected:

   - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1
        const char* filePath = [[URL path] fileSystemRepresentation];

        const char* attrName = "com.apple.MobileBackup";
        u_int8_t attrValue = 1;

        int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
        return result == 0;
    } else { // iOS >= 5.1


        NSLog(@"%d",[URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil]);
        return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil];
    }
}

and I passed the below url in as an NSURL, in the case of the Simulator:

file:///Users/TEST/Library/Application%20Support/iPhone%20Simulator/5.1/Applications/62854BAB-AB51-4771-895F-28C61983A7AC/Documents/MyFolder"

Can any one suggest where my mistake is in this?


回答1:


The problem is with the URL your passing in.

Even though you are storing your data in a Folder, that Data is still two things

  1. In the documents folder, so it will be syncs
  2. The Folder is Associated with your App

To solve this you need to store it in /Library instead of /Documents

So your URL would be

file:///Users/TEST/Library/Application%20Support/iPhone%20Simulator/5.1/Applications/62854BAB-AB51-4771-895F-28C61983A7AC/Library/MyFolder

Storing non sync-able data or just any external data in the Library folder is Apples new preference since iCloud was implemented




回答2:


Code looks fine to me.

Are you sure that all the files/folders are getting the flags set properly.

You can do that by this terminal command -> ls -al -@



来源:https://stackoverflow.com/questions/10588652/why-was-my-application-still-rejected-after-excluding-files-from-icloud-backup-u

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!