В iOS 7 каталог документов симуляторов iOS можно найти в:
/Users/Sabo/Library/Application Support/iPhone Simulator/
Однако в iOS 8 Beta Simulator я не могу найти соответствующий каталог для iOS 8 в каталоге выше.
Где путь к каталогу документов для симулятора iOS 8?
ios
ios8
ios-simulator
Огонь кулак
источник
источник
Ответы:
на моем компьютере путь:
~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/
ПРИМЕЧАНИЕ: возможно, эти длинные идентификаторы (например, UDID) на вашем компьютере разные.
источник
NSLog
ниже кода где-нибудь в "AppDelegate", запустите свой проект и следуйте по пути. Вам будет проще получить доступ к документам, а не искать в произвольном порядке внутри "~ / Library / Developer / CoreSimulator / Devices /"Цель-C
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
Swift
Если вы используете Swift 1.2, используйте приведенный ниже код, который будет выводиться только при разработке при использовании Simulator из-за
#if
#endif
блока:#if arch(i386) || arch(x86_64) let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString NSLog("Document Path: %@", documentsPath) #endif
Скопируйте свой путь из «/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 ...», перейдите в « Finder », а затем « Go to Folder » или command+ shift+ gи вставьте свой путь, пусть Mac перенесет вас на ваш каталог документов :)
источник
Просто напишите приведенный ниже код в 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
#if targetEnvironment(simulator) if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: \(documentsPath)") } #endif
Выходные данные
/ Пользователи / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Containers / Data / Application / 25174F64-7130-4B91-BC41-AC74257CCC6E / Documents
Скопируйте свой путь из «/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A ...», перейдите в «Finder», а затем «Перейти в папку» или команду + shift + g и вставьте свой путь , пусть Mac перенесет вас в каталог документов
источник
Я рекомендую хорошее служебное приложение под названием SimPholder, которое упрощает поиск файлов и папок при разработке приложения для iOS. У него есть новая версия для работы с новыми симуляторами под названием SimPholder2. Его можно найти на simpholders.com
источник
Несмотря на то, что здесь много ответов, ни один из них не дает понимания того, как изменилась структура папок симуляторов iOS 8.3, и не предоставляет быстрый способ найти данные приложения (папка документов).
Начиная с iOS 8, папки для хранения данных приложения отделены от исполняемых файлов приложения, в то время как iOS 7 и ниже имеют одинаковую структуру папок, с той лишь разницей, что все симуляторы (разных типов и версий) теперь в одной большой папке.
Итак, путь к симулятору iOS 8,7,6 следующий:
~/Library/Developer/CoreSimulator/Devices
Каждый симулятор теперь содержится в папке с уникальным идентификатором, который изменяется при каждом сбросе симулятора.
Вы можете найти
Identifier
для каждого из ваших устройств и симуляторов, перейдя вXcode > Window > Devices
(первых 3 или 4 символа идентификатора более чем достаточно, чтобы запомнить).Чтобы найти тот, на котором вы установили свои приложения, взгляните на свой
Run scheme > devices
(экран 2).Теперь, после того как вы определите свой симулятор, в зависимости от его версии структура папок сильно отличается:
В iOS 8 исполняемый файл и папка данных приложения находятся в разных папках:
Исполняемый :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]
Папка данных :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/
Папка документов :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents
В iOS 7 и ниже структура папок такая же, как и раньше, только помните, что теперь все симуляторы находятся в одной папке (см. Выше).
источник
Если ваше приложение использует CoreData, отличным трюком будет поиск имени файла sqlite с помощью терминала.
find ~ -name my_app_db_name.sqlite
В результатах будут перечислены полные пути к файлам всех симуляторов, на которых запущено ваше приложение.
Я действительно хотел бы, чтобы Apple просто добавила кнопку в меню файла iOS Simulator, например «Показать папку документов в Finder».
источник
Это правильно, что нам нужно заглянуть в путь ~ / Library / Developer / CoreSimulator / Devices /.
Но проблема, которую я вижу, заключается в том, что путь продолжает меняться каждый раз, когда я запускаю приложение. Путь содержит еще один набор длинных идентификаторов после строки приложения, который постоянно меняется каждый раз, когда я запускаю приложение. Это в основном означает, что мое приложение не будет иметь кэшированных данных при следующем запуске.
источник
В iOS 9.2 и Xcode 7.2 следующий скрипт откроет папку Documents последнего установленного приложения на последнем использованном симуляторе;
cd ~/Library/Developer/CoreSimulator/Devices/ cd `ls -t | head -n 1`/data/Containers/Data/Application cd `ls -t | head -n 1`/Documents open .
Чтобы создать легко запускаемый сценарий, поместите его в приложение Automator с помощью «Run Shell Script»:
источник
С принятием CoreSimulator в Xcode 6.0 каталоги данных для каждого устройства, а не для каждой версии. Каталог данных ~ / Library / Developer / CoreSimulator / Devices // данные, которые можно определить из 'xcrun simctl list'
Обратите внимание, что вы можете безопасно удалить ~ / Library / Application Support / iPhone Simulator и ~ / Library / Logs / iOS Simulator, если вы не планируете возвращаться к Xcode 5.x или более ранней версии.
источник
обновление: 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 }
Перейдите в Finder, нажмите command-shift-g (или Go> Go to Folder ... под строкой меню) и вставьте туда полный путь "var / folder /.../ documents" и нажмите go.
источник
Пытаться
~/Library/Developer/CoreSimulator/Devices/
источник
Я столкнулся с той же проблемой, когда сохранил полный путь с помощью CoreData. При получении полного пути возвращается значение null, потому что UUID папки документов отличается каждый раз при перезапуске приложения. Вот мое решение:
источник
Где находится каталог документов для симулятора iOS 8
Возможно, вы заметили, что iPhone Simulator изменился с появлением Xcode 6 и, конечно же, с ним - путь к каталогу документов ваших смоделированных приложений. Иногда нам может потребоваться взглянуть на это.
Найти этот путь не так просто, как раньше, а именно: Библиотека / Поддержка приложений / iPhone Simulator / 7.1 / Приложения /, за которым следует загадочный номер, представляющий ваше приложение.
Что касается Xcode 6 и iOS 8, вы найдете его здесь: 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/
источник
в Appdelegate поместите этот код, чтобы увидеть 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
в журнале:
Каталог документов: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Documents /
Каталог кэша: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Library / Caches
источник
Если вам нравится заходить в папки приложений, чтобы увидеть, что происходит, и не нужно проходить через лабиринтные UUDID, я сделал следующее: https://github.com/kallewoof/plget
и используя его, я сделал это: https://gist.github.com/kallewoof/de4899aabde564f62687
Обычно, когда я хочу перейти в папку какого-то приложения, я делаю:
$ 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
В
./app.sh
части синхронизируется ссылки. В настоящее время это необходимо практически всегда, поскольку приложения меняют UUID для каждого запуска в Xcode, начиная с 6.0. Также, к сожалению, приложения по идентификатору пакета для 8.x и по имени приложения для <8.источник
На основе ответа Анкура, но для нас, пользователей Swift:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) println("Possible sqlite file: \(urls)")
Поместите его во ViewDidLoad, и он будет распечатан сразу после выполнения приложения.
источник
Тренажеры расположены под:
~/Library/Developer/CoreSimulator/
Здесь они перечислены как каталоги с именами UUID. Используйте сортировку по дате изменения, чтобы найти самую последнюю. Внутри перейдите к:
/data/Containers/Data/Application/
Здесь вы получите список всех приложений на этом устройстве. Вы можете снова отсортировать это, чтобы получить последнюю версию приложения.
ПРИМЕЧАНИЕ. Xcode изменяет имя каталога каждый раз, когда вы запускаете приложение, поэтому не полагайтесь на создание псевдонимов / ярлыков на рабочем столе.
Самый простой способ - использовать здесь приложение , которое делает все автоматически.
источник
Каталог симулятора был перемещен с бета-версией Xcode 6 в ...
~/Library/Developer/CoreSimulator
Просмотр каталога в папке Documents вашего приложения немного сложнее, например,
~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite
источник
Лучший способ найти путь - это сделать с помощью кода.
Используя Swift, просто вставьте приведенный ниже код в приложение- функцию в свой AppDelegate.swift.
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsPath = paths.first as String println(documentsPath)
Для кода Obj-C посмотрите ответ от @Ankur
источник
Для Swift 3.x
if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path { print("Documents Directory: " + documentsPath) }
источник
iOS 11
if let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first { debugPrint("documentsPath = \(documentsPath)") }
источник