Di iOS 7, direktori dokumen simulator iOS dapat ditemukan di:
/Users/Sabo/Library/Application Support/iPhone Simulator/
Namun, di iOS 8 Beta Simulator , saya tidak dapat menemukan direktori yang sesuai untuk iOS 8 di direktori di atas.
Di mana jalur direktori dokumen untuk iOS 8 Simulator?
ios
ios8
ios-simulator
Tinju Api
sumber
sumber
Jawaban:
di komputer saya, jalurnya adalah:
~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/
CATATAN: mungkin ID panjang tersebut (yaitu UDID) berbeda di komputer Anda.
sumber
NSLog
di bawah kode di suatu tempat di "AppDelegate", jalankan proyek Anda dan ikuti jalurnya. Ini akan memudahkan Anda untuk mendapatkan dokumen daripada mencari secara acak di dalam "~ / Library / Developer / CoreSimulator / Devices /"Objective-C
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
Swift
Jika Anda menggunakan Swift 1.2, gunakan kode di bawah ini yang hanya akan dihasilkan dalam pengembangan saat menggunakan Simulator karena
#if
#endif
bloknya:#if arch(i386) || arch(x86_64) let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString NSLog("Document Path: %@", documentsPath) #endif
Salin jalur Anda dari "/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 ..." buka " Finder " dan kemudian " Go to Folder " atau command+ shift+ gdan tempel jalur Anda, biarkan mac membawa Anda ke direktori dokumen :)
sumber
Cukup tulis kode di bawah ini di AppDelegate -> didFinishLaunchingWithOptions
Objective C
#if TARGET_IPHONE_SIMULATOR // where are you? NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); #endif
Swift 2.X.
if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path { print("Documents Directory: " + documentsPath) }
Swift 3.X.
#if arch(i386) || arch(x86_64) if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: \(documentsPath)") } #endif
Swift 4.2.0
#if targetEnvironment(simulator) if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: \(documentsPath)") } #endif
Output
/ Pengguna / mitul_marsonia / Perpustakaan / Pengembang / CoreSimulator / Perangkat / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Wadah / Data / Aplikasi / 25174F64-7130-4B91-BC41-AC74257CCC6E / Dokumen
Salin jalur Anda dari "/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A ..." buka "Finder" lalu "Go to Folder" atau command + shift + g dan tempel jalur Anda , biarkan mac membawa Anda ke direktori dokumen Anda
sumber
Saya merekomendasikan aplikasi utilitas bagus bernama SimPholder yang memudahkan untuk menemukan file dan folder saat mengembangkan aplikasi iOS Anda. Ini memiliki versi baru untuk bekerja dengan simulator baru yang disebut SimPholder2. Ini dapat ditemukan di simpholder.com
sumber
Terlepas dari kenyataan bahwa ada banyak jawaban, tidak ada yang memberikan pemahaman tentang bagaimana struktur folder dari simulator iOS 8.3 telah berubah dan tidak menyediakan cara cepat untuk menemukan Data Aplikasi (folder Dokumen).
Karena iOS 8, folder penyimpanan Data dari suatu Aplikasi terpisah dari file aplikasi yang dapat dijalankan sedangkan iOS 7 dan di bawahnya memiliki struktur folder yang sama, satu-satunya perbedaan adalah kenyataan bahwa semua simulator (tipe dan versi berbeda) adalah sekarang dalam satu folder besar.
Jadi, jalur ke simulator iOS 8,7,6 adalah sebagai berikut:
~/Library/Developer/CoreSimulator/Devices
Setiap simulator sekarang berada dalam folder yang diberi nama dengan pengenal unik yang berubah di setiap reset simulator.
Anda dapat menemukan
Identifier
untuk setiap perangkat & simulator Anda dengan pergi keXcode > Window > Devices
(3 atau 4 karakter pertama dari pengenal lebih dari cukup untuk diingat).Untuk menemukan aplikasi tempat Anda menginstal aplikasi, lihat
Run scheme > devices
(layar 2) Anda.Sekarang, setelah Anda mengidentifikasi simulator Anda, bergantung pada versinya, struktur foldernya sangat berbeda:
Di iOS 8 , file yang dapat dieksekusi dan folder data aplikasi berada di folder yang berbeda:
Dapat dijalankan :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]
Folder Data :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/
Folder Dokumen :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents
Pada iOS 7 ke bawah struktur foldernya sama seperti sebelumnya hanya saja ingat bahwa sekarang setiap simulator ada di folder yang sama (lihat di atas).
sumber
Jika aplikasi Anda menggunakan CoreData, trik yang bagus adalah mencari nama file sqlite menggunakan terminal.
find ~ -name my_app_db_name.sqlite
Hasilnya akan mencantumkan jalur file lengkap ke semua simulator yang telah menjalankan aplikasi Anda.
Saya sangat berharap Apple hanya menambahkan tombol ke menu file Simulator iOS seperti "Buka folder Dokumen di Finder".
sumber
Benar bahwa kita perlu melihat ke path ~ / Library / Developer / CoreSimulator / Devices /.
Tetapi masalah yang saya lihat adalah jalur terus berubah setiap kali saya menjalankan aplikasi. Path berisi satu set ID panjang setelah Application string dan itu terus berubah setiap kali saya menjalankan aplikasi. Ini pada dasarnya berarti bahwa aplikasi saya tidak akan memiliki data yang di-cache saat dijalankan di lain waktu.
sumber
Dengan iOS 9.2 dan Xcode 7.2, skrip berikut akan membuka folder Dokumen dari aplikasi yang terakhir diinstal pada simulator yang terakhir digunakan;
cd ~/Library/Developer/CoreSimulator/Devices/ cd `ls -t | head -n 1`/data/Containers/Data/Application cd `ls -t | head -n 1`/Documents open .
Untuk membuat skrip yang dapat dijalankan dengan mudah, letakkan di Aplikasi Automator dengan "Run Shell Script":
sumber
Dengan adopsi CoreSimulator di Xcode 6.0, direktori data menjadi per perangkat, bukan per versi. Direktori data adalah ~ / Library / Developer / CoreSimulator / Devices // data yang dapat ditentukan dari 'xcrun simctl list'
Perhatikan bahwa Anda dapat dengan aman menghapus ~ / Library / Application Support / iPhone Simulator dan ~ / Library / Logs / iOS Simulator jika Anda tidak berencana untuk kembali ke Xcode 5.x atau sebelumnya.
sumber
memperbarui: Xcode 11.5 • Swift 5.2
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print(documentsPath) // "var/folder/.../documents\n" copy the full path }
Buka Finder Anda, tekan command-shift-g (atau Buka> Buka Folder ... di bawah bilah menu) dan tempelkan jalur lengkap "var / folder /.../ dokumen" di sana dan tekan buka.
sumber
Mencoba
~/Library/Developer/CoreSimulator/Devices/
sumber
Saya menghadapi masalah yang sama ketika saya menyimpan jalur lengkap menggunakan CoreData. Saat mengambil jalur lengkap, itu mengembalikan nol karena folder dokumen UUID berbeda setiap kali aplikasi dimulai ulang. Berikut adalah resolusi saya:
sumber
Di mana Direktori Dokumen untuk iOS 8 Simulator
Anda mungkin telah memperhatikan bahwa Simulator iPhone telah berubah dengan Xcode 6, dan dengan itu - tentu saja - jalur ke Direktori Dokumen aplikasi simulasi Anda. Kadang-kadang kita mungkin perlu melihatnya.
Menemukan jalur itu tidak semudah dulu, yaitu Library / Application Support / iPhone Simulator / 7.1 / Applications / diikuti dengan nomor samar yang mewakili aplikasi Anda.
Pada Xcode 6 dan iOS 8, Anda akan menemukannya di sini: Library / Developer / CoreSimulator / Devices / cryptic number / data / Containers / Data / Application / cryptic number
http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/
sumber
di Appdelegate, letakkan kode ini untuk melihat Document and Cache Dir:
#if TARGET_IPHONE_SIMULATOR NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString* cachePath = [cachePathArray lastObject]; NSLog(@"Cache Directory: %@", cachePath); #endif
di Log:
Direktori Dokumen: / Pengguna / xxx / Perpustakaan / Pengembang / CoreSimulator / Perangkat / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Wadah / Data / Aplikasi / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Dokumen /
Direktori Cache: / Pengguna / xxx / Perpustakaan / Pengembang / CoreSimulator / Perangkat / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Kontainer / Data / Aplikasi / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Perpustakaan / Cache
sumber
Jika Anda ingin masuk ke folder aplikasi untuk melihat apa yang terjadi dan tidak ingin melalui UUDID labirin, saya membuat ini: https://github.com/kallewoof/plget
dan menggunakannya, saya membuat ini: https://gist.github.com/kallewoof/de4899aabde564f62687
Pada dasarnya, ketika saya ingin membuka folder beberapa aplikasi, saya melakukan:
$ cd ~/iosapps $ ./app.sh $ ls -l total 152 lrwxr-xr-x 1 me staff 72 Nov 14 17:15 My App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/BD660795-9131-4A5A-9A5D-074459F6A4BF lrwxr-xr-x 1 me staff 72 Nov 14 17:15 Other App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/A74C9F8B-37E0-4D89-80F9-48A15599D404 lrwxr-xr-x 1 me staff 72 Nov 14 17:15 My App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/07BA5718-CF3B-42C7-B501-762E02F9756E lrwxr-xr-x 1 me staff 72 Nov 14 17:15 Other App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/5A4642A4-B598-429F-ADC9-BB15D5CEE9B0 -rwxr-xr-x 1 me staff 3282 Nov 14 17:04 app.sh lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/69F7E3EF-B450-4840-826D-3830E79C247A lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/976D1E91-DA9E-4DA0-800D-52D1AE527AC6 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/473F8259-EE11-4417-B04E-6FBA7BF2ED05 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/CB21C38E-B978-4B8F-99D1-EAC7F10BD894 lrwxr-xr-x 1 me staff 158 Nov 14 17:15 com.mycompany.otherapp-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/DE3FF8F1-303D-41FA-AD8D-43B22DDADCDE lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-7-1_iPad-Retina.dr -> simulator/4DC11775-F2B5-4447-98EB-FC5C1DB562AD/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-0_iPad-2.dr -> simulator/6FC02AE7-27B4-4DBF-92F1-CCFEBDCAC5EE/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-0_iPad-Retina.dr -> simulator/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data lrwxr-xr-x 1 me staff 51 Nov 14 17:15 iOS-8-1_iPad-Retina.dr -> simulator/414E8875-8875-4088-B17A-200202219A34/data lrwxr-xr-x 1 me staff 158 Nov 14 17:15 org.cocoapods.demo.pajdeg-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/C3069623-D55D-462C-82E0-E896C942F7DE lrwxr-xr-x 1 me staff 51 Nov 14 17:15 simulator -> /Users/me/Library/Developer/CoreSimulator/Devices
Bagian ini
./app.sh
menyinkronkan tautan. Hal ini pada dasarnya selalu diperlukan saat ini karena aplikasi mengubah UUID untuk setiap proses di Xcode mulai 6.0. Selain itu, sayangnya, aplikasi menggunakan id bundel untuk 8.x dan berdasarkan nama aplikasi untuk <8.sumber
Berdasarkan jawaban Ankur tetapi bagi kami pengguna Swift:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) println("Possible sqlite file: \(urls)")
Taruh di dalam ViewDidLoad dan itu akan segera dicetak setelah aplikasi dijalankan.
sumber
Simulator berada di bawah:
~/Library/Developer/CoreSimulator/
Di sini, mereka terdaftar sebagai direktori dengan nama UUID. Gunakan urutkan berdasarkan 'Tanggal diubah' untuk menemukan yang terbaru. Di dalam navigasi ke:
/data/Containers/Data/Application/
Di sini Anda akan mendapatkan daftar semua aplikasi di perangkat itu. Anda dapat mengurutkan ini lagi untuk mendapatkan aplikasi terbaru.
CATATAN: Xcode mengubah nama direktori setiap kali Anda menjalankan aplikasi, jadi jangan mengandalkan membuat alias / pintasan di desktop.
Cara termudah adalah menggunakan aplikasi di sini , yang melakukan semuanya secara otomatis.
sumber
Direktori simulator telah dipindahkan dengan Xcode 6 beta ke ...
~/Library/Developer/CoreSimulator
Menjelajahi direktori ke folder Dokumen aplikasi Anda sedikit lebih sulit, misalnya,
~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite
sumber
Cara terbaik untuk menemukan jalur adalah dengan melakukan melalui kode.
Menggunakan Swift, cukup tempelkan kode di bawah ini ke dalam aplikasi fungsi di AppDelegate.swift Anda
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsPath = paths.first as String println(documentsPath)
Untuk kode Obj-C, lihat jawaban dari @Ankur
sumber
Untuk Swift 3.x
if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: " + documentsPath) }
sumber
iOS 11
if let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first { debugPrint("documentsPath = \(documentsPath)") }
sumber