阻止备份到 iCloud,以下代码正确吗?

发布于 2024-12-22 03:16:19 字数 480 浏览 1 评论 0原文

我正在下载许多音频和视频文件并将它们存储在我的主目录中。 现在我想“阻止备份到 iCloud” 所以我为每个文件的 url 添加了以下代码

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

{

    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;

}

谁能告诉我这段代码适用于所有 IOS 版本。 如果没有,请建议正确的方法。 谢谢

I am downloading many audio and video files and stored them in my Home directory.
Now i want to "prevent backup to iCloud"
so i have added following code for my every file's url

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

{

    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;

}

Can anyone tell me that will this code work for all IOS versions.
if not then please suggest the correct way to do this.
Thank You

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鸵鸟症 2024-12-29 03:16:19

谁能告诉我这段代码适用于所有 IOS 版本吗?

不,事实并非如此。 Apple 在其介绍“不备份”标志的技术说明中明确指出:

新的“不备份”属性仅在 iOS 5.0.1 或更高版本中使用。

他们还告诉您对于旧版 iOS 版本需要做什么:

在 iOS 5.0 及更早版本中,应用程序需要将其数据存储在 /Library/Caches 中以避免备份。由于此属性在旧系统上被忽略,因此您需要确保您的应用程序在您的应用程序支持的所有 iOS 版本上都符合 iOS 数据存储指南。

Can anyone tell me that will this code work for all IOS versions.

No, it doesn't. In its Technical Note introducing the "do not backup" flag, Apple clearly states that

The new "do not back up" attribute will only be used by iOS 5.0.1 or later.

They also tell you what you need to do for older iOS versions:

On iOS 5.0 and earlier, applications will need to store their data in <Application_Home>/Library/Caches to avoid having it backed up. Since this attribute is ignored on older systems, you will need to insure your app complies with the iOS Data Storage Guidelines on all versions of iOS that your application supports.

对风讲故事 2024-12-29 03:16:19

您可以在 iOS 5.1 或更高版本中使用此代码

- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
    NSURL *fileURL = [NSURL fileURLWithPath:filePathString];

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

    NSError *error = nil;

    BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool: YES]
                                  forKey: NSURLIsExcludedFromBackupKey
                                 error: &error];
    return success;
}

You can use this code for iOS 5.1 or later

- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
    NSURL *fileURL = [NSURL fileURLWithPath:filePathString];

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

    NSError *error = nil;

    BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool: YES]
                                  forKey: NSURLIsExcludedFromBackupKey
                                 error: &error];
    return success;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文