Pertanyaan Data Inti Lokasi File Sqlite


Biasanya, file store sqlite untuk aplikasi data inti terletak di

Perpustakaan> Dukungan Aplikasi> Simulator iPhone> 7.1 (atau versi apa pun yang Anda gunakan)> Aplikasi> (Folder mana pun yang berisi aplikasi Anda)> Dokumen

folder, tetapi saya tidak dapat menemukannya di iOS 8. Saya berasumsi mereka hanya akan menambahkan folder 8,0 di dalam folder Simulator iPhone, tetapi tidak ada di sana. Adakah yang bisa menemukannya?


75
2018-06-10 04:45


asal


Jawaban:


Saya berhasil menemukan file sqlite, dan di jalur ini sekarang:

Library / Pengembang / CoreSimulator / Perangkat / (angka dan huruf) / data / Kontainer / Data / Aplikasi / (angka dan huruf) / Dokumen /

(angka dan huruf) singkatan dari folder yang akan menjadi unik untuk aplikasi / komputer Anda, tetapi akan terlihat seperti ini: 779AE2245-F8W2-57A9-8C6D-98643B1CF01A

Saya dapat menemukannya dengan masuk ke appDelegate.m, scroll ke bawah ke

- (NSURL *)applicationDocumentsDirectory 

metode, dan NSLogging jalur kembali, seperti ini:

// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory  inDomains:NSUserDomainMask] lastObject]);

    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
 }

Ini akan memberi Anda jalur unik Anda, membuatnya lebih mudah bagi Anda, karena sulit menemukannya dengan 2 folder / string huruf dan angka yang tidak disebutkan namanya.


119
2018-06-11 00:57



Coba Langkah 3 Sederhana ini

  1. Salin kode berikut di didFinishLaunchingWithOptions anda appdelegate.m dan tambahkan titik istirahat sebelum NSLog()

    (BOOL)application:(UIApplication *)application  
    
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSLog(@"%@",[paths objectAtIndex:0]);
     }
    

Atau di Swift:

let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
print(paths[0])

enter image description here

2.Open Finder-> Go -> Buka folder dan tempel jalur yang disalin dari langkah 1

enter image description here

3. Yah !!! Anda berada di Tujuan Anda.


51
2017-12-13 16:51



Jika aplikasi Anda menggunakan Data Inti, itu hanya masalah mencari file sqlite di Terminal:

find ~ -name app_db_file_name.sqlite

Hasilnya akan mencantumkan jalur lengkap ke folder simulator yang berisi aplikasi Anda.


37
2017-09-19 15:44



Tak satu pun dari jawaban yang disebutkan cara paling sederhana untuk benar-benar mendapatkan lokasi file DB.

Ia bahkan tidak mengharuskan Anda untuk memodifikasi kode sumber Anda, karena ini adalah saklar waktu berjalan sederhana di XCode.

  1. Pilih Edit Skema ... di sebelah tombol Jalankan.

    edit scheme

  2. Pilih Run / Arguments dan tambahkan dua opsi berikut:

    -com.apple.CoreData.SQLDebug 1
    -com.apple.CoreData.Logging.stderr 1
    

    option

  3. Jalankan aplikasi, dan Anda akan melihat di log:

    logs


21
2017-11-20 22:49



Saya meretas liner satu ini (Inti): find ~/Library/Developer/CoreSimulator/Devices/ -name device.plist -exec sh -c "/usr/libexec/PlistBuddy -c \"print UDID\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print name\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print runtime\" '{}' | sed -n 's/com\.apple\.CoreSimulator.SimRuntime\.\(.*\)/\1/p'" \;

Cetakan ini:

14F313C8-3813-4E38-903E-2010C136B77B iPad Retina iOS-8-0
1F6B82A2-C467-479A-8CAF-074BE507AC8E iPad Air iOS-8-0
2DA83944-BE5D-4342-B330-08F67A932D8C iPad 2 iOS-7-1
48703432-A5C5-4606-9369-0D21B53EB1E8 iPhone 4s iOS-7-1
4AFB71CC-6752-4F9A-A239-4DC9CA53A8B8 iPhone 5s iOS-8-0
53A65771-DF50-4A5C-A8D2-4D1C3A5D0F60 iPhone 5 iOS-7-1
6B97C174-5914-4E89-8D17-943F0E2703BA iPhone 5 iOS-8-0
6C2DF3E9-FA26-4391-8B66-72E1467D6297 iPad 2 iOS-8-0
7F85E299-A3C2-4704-8B44-2984F6F995F5 iPad Retina iOS-7-1
8B9EDFFD-2240-476B-88AD-06ABE8F9FF51 iPhone 6 Plus iOS-8-0
97691E5D-5C38-4875-8AA7-C2B1E4ABCBB5 Resizable iPhone iOS-8-0
9BBF3408-6CA4-4CE0-BD4E-B02001F1262B iPhone 5s iOS-7-1
C9237847-F0AA-44BC-A74E-C08C2E0F7A6C Resizable iPad iOS-8-0
CC44C1BA-F39C-4410-AE34-4ABBD7806D45 iPad Air iOS-7-1
CDF4D811-5011-4464-8291-5CDA378375EA iPhone 6 iOS-8-0
E77DE00C-E244-4F25-A5E2-E6581614D5A2 iPhone 4s iOS-8-0

Memperbarui:

Seperti yang dikatakan seseorang sini, juga memungkinkan untuk dijalankan xcrun simctl list devices untuk mendapatkan hasil yang serupa:

== Devices ==
-- iOS 7.0 --
-- iOS 7.1 --
    iPhone 4s (48703432-A5C5-4606-9369-0D21B53EB1E8) (Shutdown)
    iPhone 5 (53A65771-DF50-4A5C-A8D2-4D1C3A5D0F60) (Shutdown)
    iPhone 5s (9BBF3408-6CA4-4CE0-BD4E-B02001F1262B) (Shutdown)
    iPad 2 (2DA83944-BE5D-4342-B330-08F67A932D8C) (Shutdown)
    iPad Retina (7F85E299-A3C2-4704-8B44-2984F6F995F5) (Shutdown)
    iPad Air (CC44C1BA-F39C-4410-AE34-4ABBD7806D45) (Shutdown)
-- iOS 8.1 --
    iPhone 4s (0763EF65-DD0D-4FAD-84C7-2DE63D416526) (Shutdown)
    iPhone 5 (868ED444-8440-4115-AF37-F419CC682D2F) (Shutdown)
    iPhone 5s (E0455E5D-7315-4EC8-B05E-76284728244C) (Shutdown)
    iPhone 6 Plus (72554908-FF99-4B8F-9B87-65255ED08CFC) (Shutdown)
    iPhone 6 (32AA8133-53A4-4BE0-8CE5-0C7A87E81CAF) (Shutdown)
    iPad 2 (4AF84DE8-CBA2-47AE-A92A-0C0CEF9F41F8) (Booted)
    iPad Retina (69238B44-AAFD-4CD5-AAEA-C182D0BC300D) (Shutdown)
    iPad Air (E580AD99-0040-4EC1-B704-0C85567E6747) (Shutdown)
    Resizable iPhone (32E872FC-6513-41AB-A5B9-B23EB7D10DC8) (Shutdown)
    Resizable iPad (99997922-4A9F-4574-9E3E-EF45F893F4A2) (Shutdown)

19
2017-09-23 13:19



Jika Anda menggunakan Cepat, ini akan mengembalikan jalur absolut direktori dokumen:

func applicationDirectoryPath() -> String {
    return NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as String
}

17
2017-09-10 10:20



Saya menulis skrip bash untuk menemukan lokasi folder Aplikasi Anda dan folder data Aplikasi dalam simulator, Anda dapat mengunduhnya sini. Setelah Anda membuka ritsleting skrip, Anda dapat menavigasi ke folder tempat skrip berada dan menggunakannya. Jika Anda menyebutnya tanpa opsi, Anda akan diberikan daftar simulator iOS yang diinstal. Anda kemudian dapat menggunakan opsi untuk menemukan program Anda. Penulisan:

./simulatorAppFolders -s "iPad Air" -i iOS-8-0 -a <MyApp>

akan menemukan folder aplikasi dan folder area asal untuk aplikasi Anda di iPad Air iOS 8 simulator. Inilah contohnya:

MacBook-Air:_posts user$ ./simulatorAppFolders -s "iPad Air" -i iOS-8-0 -a MyApp
App folder = /Users/james/Library/Developer/CoreSimulator/Devices/6A9DEE93-FAEF-4BF4-9989-BC14CD38AEA0/data/Containers/Bundle/Application/8F64CD7F-A227-43D6-98AC-41D3919827CB
dataFolder = /Users/james/Library/Developer/CoreSimulator/Devices/6A9DEE93-FAEF-4BF4-9989-BC14CD38AEA0/data/Containers/Data/Application/96C40A21-5A5C-4399-839C-B155B8A72932

Memperbarui

Ada pembaruan untuk skrip asli yang memungkinkan Anda untuk mencari berdasarkan jenis perangkat menggunakan opsi -d. Saya juga telah menulis skrip lain yang membuat serangkaian folder dengan nama yang masuk akal sehingga Anda dapat menemukan aplikasi dan dokumen aplikasi Anda. Skrip ini akan membuat folder bernama iOS_SIMULATORS di area rumah Anda dan Anda dapat dengan mudah menavigasi ke aplikasi Anda dari sana.


13
2017-09-15 19:34