2011-11-14 18 views
22

Document Directory adresindeki klasörüme Do not back up ayarlamak istiyorum. iOS 5.0.1: Klasörün iCloud için "Yedekleme" olarak işaretlendiği nasıl doğrulanır?

Ben "Do not back up" için kod bulundu, ancak nasıl ben klasör işaretli olduğundan emin olun yoktur.

+0

Bu işi aldınız mı? Ayrıca, Belgeler'deki dizin için benzer bir şey deniyorum. Dizindeki tüm dosyalar için bunu yapmak zorunda mıyız? – applefreak

+0

@AppleDeveloper: Evet, iCloud'a yedeklemek istemiyorsanız dizininizi işaretlemelisiniz. Bunu denedim. ama elma değerlendirmeleri için bekliyor. – Devang

+0

Serin. Ben de Apple'ın incelemesini bekliyorum. Kodumu http://stackoverflow.com/questions/8209755/iphone-move-resources-to-application-bundle adresinde verdim. Herhangi bir sorunla karşılaşırsanız lütfen bana bildirin. Teşekkürler. – applefreak

cevap

12

Bağladığınız belgelere göre, yöntemi bu sayfada tam olarak nasıl listelediklerine göre ayarlarsanız, öznitelik doğru olarak işaretlenmişse yöntem YES değerini döndürür. simülatörde uygulamasını çalıştırın iOS 5.1 için

xattr -plxv com.apple.MobileBackup <file name> 
+0

ok. Ancak bulduğum belgeden 'Önemli: Yeni" yedekleme "özelliği yalnızca iOS 5.0.1 veya sonraki sürümleri tarafından kullanılacaktır. IOS 5.0 ve önceki sürümlerde, uygulamaların yedeklenmesini önlemek için verilerini /Library/Caches uygulamasında saklaması gerekir.Bu özellik eski sistemlerde yok sayıldığından, uygulamanızın uygulama desteğinizin tüm iOS sürümlerinde iOS Veri Depolama Yönergeleriyle uyumlu olmasını sağlamanız gerekir. ”Klasör konumumu Apple onayı için kütüphanemde değiştirmem gerekiyor. – Devang

+3

Uygulamanız işletim sistemi sürümünü kontrol edebilir ve uygun olanı yapabilir. – hotpaw2

+0

Lütfen yanılıyorsam beni düzeltin. Üç durum var gibi görünüyor: Ön 5.0, 5.0 ve 5.0.1. 5.0.1 için, klasörünüzü "Çevrimdışı Veriler" olarak işaretleyebilirsiniz. 5.0'da, iCloud var, ama bir "yedekleme" çözümü olmadan, bu yüzden tasfiye edilecek Kütüphane/Önbelleklere veri koymak zorunda kalacaksınız :(. Ön 5.0 iCloud yok ve AFAIK veri alışkanlık yok Belgelerden veya Önbelleklerden arındırılmış olabilir, bu nedenle de Caches'a verileri de buraya koymanız güvenli olabilir. – Michael

10

Çalıştır simülatör uygulaması, ardından ilgili dosyalara karşı bu komutu çalıştırmak için Terminal kullanmak :

xattr {filename} 
öğesinin doğru bir şekilde dışlama için işaretlenmiş olup olmadığını aşağıdaki görmelisiniz

:

com.apple.metadata:com_apple_backup_excludeItem 
+0

Teşekkür ederim , nedir? Uygulamam mı? adında? ya da ne ? –

+0

xattr, iOS Simulator yazılımındaki dosyalar için hiçbir zaman hiçbir şey döndürmez. Bu, 'genişletilmiş özellikler' olmadığı anlamına mı geliyor? – gmlvsv

21

ve Terminal aşağıdaki komutu çalıştırın:

+1

Bu, "Do not backup" özelliğini bir dizine uyguladığımda gerçekte – Dev

+1

doğrulayan doğru yanıttır, dosyadaki dosyalar senkronize edilmez mi? Çünkü onu bir klasöre (../Library/Folder/file) uyguladım ve "xattr ../Library/Folder" kullandığımda "com.apple.metadata: com_apple_backup_excludeItem" yazıyor, ancak "xattr. ./Library/Folder/file "değil. – tomidelucca

11
  1. açık simülatörü
  2. uygulamayı silmek
  3. şimdi kod üzerinde dosya depolar, simülatör içinde kod çalıştırmasına (app inceleme ekibi böylece sıfırdan başlıyor emin olun yoluyla kod 1 kez çalışır) senin sabitdisk. Eğer rastgele klasör isimleri bir liste ile sunulacak
  4. terminali
  5. cd/Users/(kullanıcı adı)/Library/Application Support/iPhone Simülatörü/(ios versiyonu)/Uygulamalar
  6. ls açmak , her birini, dosya klasörü
  7. 'u buluncaya kadar açın; $ (find *); du -sk $ dosya yapmak; xattr -l $ dosya; Eko ; yapılan
  8. sen biçiminde app tüm dosyaları ile sunulacaktır ..

    (dosya boyutu) (dosya adı)
    (iCloud yedeklemesi dışlama)

NOT: hiçbir şey listede olup olmadığını Bu, dosyanın yedekleneceği anlamına gelir (Kitaplık veya Belgeler klasöründeyse). Eğer bunun yerine 'com.apple.metadata: com_apple_backup_excludeItem: com.apple.MobileBackup' adresini görürseniz o zaman gitmekte fayda var demektir.

+0

Bunu yaptığımda 'com.apple.metadata: com_apple_backup_excludeItem: com.apple.MobileBackup' yerine 'com.apple.MobileBackup:' ifadesini görüyorum. Bu, bayrağı doğru şekilde ayarlanmadığı anlamına mı geliyor? Ben sadece bayrağı ayarlamak için sağlanan yöntemini kullanıyorum: https://developer.apple.com/library/ios/#qa/qa1719/_index.html – jonydep

+0

xattr her zaman iOS Simulator gelen dosyalar için hiçbir şey döndürmez. 'genişletilmiş özellikler' yok mu demek? – gmlvsv

2

iOS 5.1 veya daha sonraki sürümlerinde bu kod benim için iyi çalışıyor.

- (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; 
    } 
+0

Bu kodu nereden kullanmalıyım? appDelegate.m içinde? ya da ne ? –

+1

@ Mc.Lover Bu kodu uygulamanın herhangi bir yerinde yazabilirsiniz. –

+0

Proaktif Programcı AppDelegate'ı yerleştirdim ama Apple yine reddetti !!! garip ben sadece [NSbundle mainBundle] ile dosya yüklüyorum; Ben hiçbir şey saklamıyorum! Bunu yapmam için bana yardım eder misin? –

İlgili konular