2015-04-19 25 views
11

iOS uygulamasında, [NSFileManager containerURLForSecurityApplicationGroupIdentifier:] yöntemini kullanarak ana iOS uygulamamızı ve uzantısını (özellikle WatchKit Uzantısı) arasında dosya paylaşmak için paylaşılan bir kapsayıcı kullanıyoruz. Hata ayıklama amacıyla bu paylaşılan kabın içeriğe erişmek gerekir, bu yüzden Xcode Cihazlar penceresini kullanarak bütün App konteyner ihracat denedim:Bir iOS Uygulamasının paylaşılan kapsayıcısı Xcode6.2 ile nasıl dışa aktarılır?

Screenshot from Xcode

Fakat, Ortak depolama dahil değildir konteyner, muhtemelen Cihazın kendisinde farklı bir yoldan bulunduğu için.

Bu, eğer mümkünse, paylaşılan konteynerleri nasıl alabiliriz?

cevap

2

benim yerel SQLite veritabanına konsoldaki yolunu yazdırmak için bu kodu kullanıyorum:

NSString *groupContainer = [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.myapp.mycontainer"] path]; 
NSString *sqlitePath = [NSString stringWithFormat:@"%@/Database.sqlite", groupContainer]; 
NSURL *url = [NSURL fileURLWithPath:sqlitePath]; 

Sonra kopyalayıp Finder dize yapıştırın -> bu yüzden doğrudan gitmek git dosya. Bu Simülatörde gayet iyi çalışıyor ancak Mac'inizin paylaşılan konteyner grubuna Mac'inizden erişebileceğinizi sanmıyorum.

+1

Teşekkürler @BalestraPatrick, Simülatör çözümünün farkındayım, ancak beta test cihazlarından gelen gıcırdatma sonrası hatalar için gerçek cihazlara yönelik bir çözüme ihtiyacımız var. –

0

Bulduğum en iyi çözüm, cihazınızın bir yedeğini oluşturmak ve daha sonra iExplorer'ı kullanarak yedeklemeyi incelemektir. AppDomainGroup-* klasörleri vardır. Bazı nedenlerden ötürü olsa da, tüm dosyalar yedeklenmez (büyük olasılıkla, yedekleme sırasında dosyaların göz ardı edilmesi için uygulanan ayarlardan dolayı).

1

Verilerinizi grup kabından belge dizinine kopyalayın. Daha sonra uygulama kapsayıcısını xcode kullanarak indirin. Burada

NSFileManager.defaultManager().copyItemAtURL(url, toURL: NSURL.fileURLWithPath(AppDelegate.applicationUserDirectory())) 

url, bu yazının yazıldığı anda (mümkün olmadığını WWDC Xcode ekip üyeleri tarafından söylendi

func containerURL(forSecurityApplicationGroupIdentifier groupIdentifier: String) -> URL? 
+0

değişkeni burada url, Paket İçeriğini gösterdikten sonra Belgeler altında görünen bir alanın varsayılan konumuna erişmeye çalıştığınızda bu durum ne olurdu? – user2363025

+0

@ user2363025 Kabın tüm içeriğini belge dizinine kopyalayabilir ve ardından ne kontrol etmek istediğinizi seçebilirsiniz. – Vishun

6

NSFileManager fonksiyonu aşağıda kullanarak & 8 Xcode 7.3 elde edilebilir beta 1). Bu işlevselliği alabilmemiz için herkese önerdiğimiz veya yorum yaptığım bir radar başvurdum.

+1

Bununla ilgili herhangi bir güncelleme var mı? – Rygen

İlgili konular