您好,登錄后才能下訂單哦!
在iOS上,應(yīng)用負(fù)責(zé)確保只有用戶數(shù)據(jù)而不包含應(yīng)用數(shù)據(jù)被備份到iCloud和iTunes上。具體的步驟在不同的iOS 版本各有不同。所以對(duì)不同的版本進(jìn)行區(qū)分描述。關(guān)于具體哪些數(shù)據(jù)不應(yīng)該被備份,參見(jiàn)App Backup Best Practices section of the iOS App Programming Guide。
注意:應(yīng)用應(yīng)該避免將應(yīng)用數(shù)據(jù)和用戶數(shù)據(jù)和在相同的文件中。這樣會(huì)增加不必要的備份大小并且被認(rèn)為是違反iOS的數(shù)據(jù)存儲(chǔ)指南。
從iOS 5.1開(kāi)始,應(yīng)用可以使用NSURLIsExcludedFromBackupKey 或 kCFURLIsExcludedFromBackupKey 文件屬性來(lái)防止文件被備份。這些API是通過(guò)通過(guò)舊的,棄用的方式的直接設(shè)置額外屬性。所有運(yùn)行在iOS5.1的都應(yīng)該使用這些API包防止文件被備份。
在iOS5 .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;
}
如果你的應(yīng)用必須支持iOS 5.0.1,你可以使用下面的方式來(lái)設(shè)置“不要備份”的拓展屬性。當(dāng)你創(chuàng)建無(wú)須備份文件或者文件夾時(shí),將數(shù)據(jù)寫(xiě)入文件然后調(diào)用這個(gè)方法,傳入一個(gè)文件URL。
下面的這些代碼已經(jīng)被棄用并只應(yīng)該使用在iOS5.0.1及更早的版本上。當(dāng)運(yùn)行的iOS5.1上時(shí),應(yīng)用應(yīng)用使用NSURL和CFURL鍵來(lái)進(jìn)行描述。
在iOS 5.0.1上設(shè)置額外屬性
#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;
}
無(wú)法在iOS5.0上防止數(shù)據(jù)被備份。如果你的應(yīng)用必須支持iOS5.0,然你需要保持你的應(yīng)用數(shù)據(jù)在Caches中來(lái)避免數(shù)據(jù)被備份。iOS將會(huì)在不需要的時(shí)候刪除Caches目錄中的數(shù)據(jù)。所以如果數(shù)據(jù)被刪除的話應(yīng)用將需要重新解壓出這些數(shù)據(jù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。