iOS 5.1的“不备份”方法不起作用?

时间:2012-06-22 19:47:01

标签: ios ios5 icloud

我们陷入了审核过程。

Apple评论员说我们没有为我们的应用程序中需要的文件设置“不备份”标志。

当然我们第一次忘记用该标志标记文件。但第二次我们使用了这里描述的方法http://developer.apple.com/library/ios/#qa/qa1719/_index.html

但它没有运作,应用程序再次被拒绝。

一次又一次地调试和尝试,文件永远不会被标记为“不备份”使用Apple说我们需要在iOS 5.1中使用的方法

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

{

    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);



    NSError *error = nil;

    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]

                                  forKey: NSURLIsExcludedFromBackupKey error: &error];

    if(!success){

        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);

    }

    return success;

}

但是如果我们使用他们说我们需要在iOS 5.0.1中使用的方法,那么这些文件会被很好地标记,并且不会在iCloud中备份。

#import <sys/xattr.h>

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

{

    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);



    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;

}

但麻烦的是那个医生页面Apple说这个方法已被弃用。所以我很害怕我们使用有效的方法(iOS 5.0.1的方法)再次上传应用程序并且可以再次拒绝相同问题的应用程序。

所以文档说了一件事,但这件事并没有正常运作。

有人让这个问题有效吗?而Apple评论家并没有就此问题以及如何解决问题向我们说明任何事情,以便我们能够100%地了解这些问题。

0 个答案:

没有答案