Yanıtlar:
Kabul edilen cevap SDK 3.2 için doğrudur - SDK 4 , bu yoldaki / User klasörünü simüle edebileceği eski iPhone OS / iOS sürümleri için bir sayıyla değiştirir, böylece yol şöyle olur:
~ / Kütüphane / Uygulama Desteği / iPhone Simülatörü / [İşletim Sistemi sürümü] / Uygulamalar / [appGUID] /
önceki SDK'yı birlikte yüklediyseniz, 3.1.x simülatörü verilerini kaydetmeye devam edecektir:
~ / Kütüphane / Uygulama Desteği / iPhone Simülatörü / Kullanıcı / Uygulamalar / [appGUID] /
Xcode6 ve iOS8 için
~ / Library / Geliştirici / CoreSimulator / Cihazlar / [Deviceıd] / veri / Konteyner / Veri / uygulama / [Appıd] /
po NSHomeDirectory()
Hata ayıklayıcıyı yazın. Kes ve Git> Klasöre Git (Cmd-Shift-G) içine yapıştırın.
NSLog
senin bu AppDelegate
's didFinishLaunchingWithOptions:
veya mümkünse po NSHomeDirectory()
ayıklananları. Her iki durumda da, dizeyi kopyalayın ve ile bulucuda açın Cmd+Shift+G
. Değişen bir şey bilmek yerine standart bir komut istemiş olduğunuz için bu daha iyi çalışır .
Uygulama verilerinizin Terminal olmadan nerede olduğunu bulmanın başka (daha hızlı?) Bir yolu var:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
cihaz tanımlayıcıyı verir
Bulundu:
~/Library/Application Support/iPhone Simulator/User/
iOS 8 ~ / Kütüphane / Geliştirici / CoreSimulator / Cihazlar / [Cihaz Kimliği] / veri / Uygulamalar / [appGUID] / Belgeler /
xcrun instruments -s
Lion'da Users/[username]/Library
gizlidir.
Finder'da görüntülemek için, ekranın üst kısmındaki 'Git' menüsünü tıklayın ve 'Kütüphane'yi göstermek için' alt 'tuşunu basılı tutun.
'Kütüphane'yi tıklayın, daha önce gizli olan kütüphane klasörünüzü görebilirsiniz.
Önceden tavsiye edilenler:
kullanım
chflags nohidden /users/[username]/library
bir terminalde klasörü görüntülemek için.
Bir yerde bir kesme noktası yakala.
Enter po NSHomeDirectory()
içinde konsol penceresi
(lldb) po NSHomeDirectory () / Kullanıcılar / kullanıcı adı / Kütüphane / Geliştirici / CoreSimulator / Cihazlar / 4734F8C7-B90F-4566-8E89-5060505E387F / data / Konteynerler / Veri / Uygulama / 395818BB-6D0F-499F-AAFE-068A783D9753
Simülatör çalışıyorsa, herhangi bir uygulamanın kapsayıcısına giden yolu alabilirsiniz:
xcrun simctl get_app_container booted <app bundle identifier>
Örnek çıktı:
$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app
"booted", simctl
bir aygıt UDID'sinin beklendiği her yerde çoğu komutun yerine kullanılabilir .
xcrun simctl list
İle cihazların listesini görebilir ve belirli komutlarla ilgili yardım alabilirsiniz xcrun simctl help
.
Güncelleme : Xcode 8.3'teki popüler istekle artık "app", "data", "groups" veya bir uygulama grubu tanımlayıcısı ekleyerek istediğiniz kapsayıcı türünü belirleyebilirsiniz.
Veri taşıyıcısını almak için:
$ xcrun simctl get_app_container booted com.example.app data
Xcode 5 ile aşağıdaki kodu kullanabilirsiniz:
#import <Foundation/NSFileManager.h>
ve:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
Sonuç şöyle görünebilir:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
İOS uygulamanızı tanımlayan bir onaltılık dize nerede .
po NSHomeDirectory()
Görünüşe göre Xcode 6.0, en azından iOS 8 simülatörleri için bu konumu bir kez daha taşıdı.
~ / Library / Geliştirici / CoreSimulator / Cihazlar / [Deviceıd] / veri / Konteyner / Veri / uygulama / [Appıd]
Uygulamanın simülatörde nerede olduğunu bulmanın en kolay yollarından biri. Kullanıcı "NSTemporaryDirectory ()"
adımları-
Uygulama kesme noktasında durduğunda, Xcode konsoluna aşağıdaki komutu yazın.
po NSTemporaryDirectory ()
Doğru bir fikir edinmek için aşağıdaki resme bakın
Artık geçici klasöre giden tam yol var. Geri dönebilir ve uygulamayla ilgili tüm klasörleri görebilirsiniz.
Umarım bu da yardımcı olur. Mutlu Kodlama :)
po NSHomeDirectory()
?
$ open /Library/Developer/CoreSimulator/Profiles/Runtimes
Örneğin: iOS 13.0
, watchOS 6.0
Bunlar farkla, en çok yer kaplar. Her biri ~ 5GB'a kadar olabilir
$ open ~/Library/Developer/CoreSimulator/Devices
Örneğin: iPhone Xr
, iPhone 11 Pro Max
. Bunlar tipik olarak her biri <15 mb'dir.
Simülatörler çalışma zamanları ve cihazlar arasında bölünür. Çalıştırırsanız $ xcrun simctl list
bir genel bakış görebilirsiniz, ancak bu simülatörlerin fiziksel konumunu bulmak istiyorsanız, gösterdiğim bu dizinlere bakın.
Desteklemediğiniz çalışma zamanlarını silmek tamamen güvenlidir. İsterseniz bunları daha sonra yeniden yükleyebilirsiniz.
Sadece bunu yapın:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
Ve şöyle bir şey elde edeceksiniz:
/ Users / yönetici / Library / Geliştirici / CoreSimulator / Cihazlar / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / veri / Kapları / Veri / Uygulama / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Belgeler
Oraya gidin ve XCode sürümü ne olursa olsun uygulamanızın belge klasörünü göreceksiniz. (Finder'da "Klasöre Git ..." komutunu kullanın ve "~ / kütüphane" yolunu belirtin).
Dize yolu için hızlı sürüm:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
ve klasör URL'si:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
Xcode 4.6 için aşağıdaki yolda saklanır ...
/ Kullanıcılar / [currentuser] / Kütüphane / Uygulama Desteği / iPhone Simulator / 6.1 / Uygulamalar /
Programlı olarak bilmek için aşağıdaki kodu kullanın
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
print("path: \(NSBundle.mainBundle().bundlePath)")
İOS 8 için
Belgeler klasörünü bulmak için Belgeler klasörüne bir dosya yazabilirsiniz:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
söyle didFinishLaunchingWithOptions
.
Ardından bir Terminal açabilir ve klasörü bulabilirsiniz:
$ find ~/Library -name Words.txt
eğer aslan hala bu sorunu yaşıyorsa, ~ / Kütüphane dir görüntülemek için 19 farklı ipuçları ile harika bir makale var. Dan Frakes'in makalesini burada bulabilirsiniz http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
Simülatörün dizini aşağıda verilmiştir.
~ / Kütüphane / Uygulama Desteği / iPhone Simülatörü / Kullanıcı /
MacOS Catalina için, benim db bulundu:
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
Almak için, applicationId
klasörleri değiştirildiği tarihe göre sıraladım, ancak bunu yapmanın daha iyi bir yolu olduğundan eminim.
Xcode'u sık kullanmayan yerel tepki kullanan kullanıcılar için kullanabilirsiniz find
. Bir terminal açın ve veritabanı adıyla arayın.
$ find ~/Library/Developer -name 'myname.db'
Tam adı bilmiyorsanız joker karakterler kullanabilirsiniz:
$ find ~/Library/Developer -name 'myname.*'
Aşağıdaki kodu kullanmayı deneyebilirsiniz
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);
Simülatörlerde xCode'da oluşturduğunuz Uygulamanın bulunduğu sözlükleri açmak için aşağıdakileri yapın:
Bu programla herhangi bir bağlantım yok, ancak eğer herhangi birini bulucuda açmak istiyorsanız SimPholders bunu inanılmaz derecede kolaylaştırıyor.
cd ~/Library/Application\ Support/iPhone\ Simulator/