Есть ли способ увидеть файловую систему на симуляторе iOS?
Есть ли способ просмотреть файловую систему текущего или просто убитого симулятора iOS? Я бы согласился на то, что вы сможете увидеть конкретные файлы приложений, если есть способ сделать это.
Обратите внимание, что я не хочу делать это программно. Я хочу видеть/открывать файлы в Finder.
Ответы
Ответ 1
UPDATE: Поскольку iOS 8:
~/Library/Developer/CoreSimulator/Устройства
Раньше было:
~/Library/Поддержка приложений/Симулятор iPhone
У него были каталоги для всех моделей симуляторов (4.0, 4.1, 5.0 и т.д.), которые вы когда-либо запускали, перейдите к тому, с которого вы работаете в Xcode.
В папке, перейдите в "Приложения", выберите опцию "Finder", которая отображает дату для файлов и сортирует по дате. Ваше приложение будет самым последним, так как оно просто изменило каталог...
Внутри каталога есть все, что связано с вашим приложением. Вы даже можете отбрасывать файлы там между запусками, чтобы вернуться обратно в сохраненную базу данных в известном состоянии, например...
Я часто бываю там, я держу директорию iPhone Simulator на боковой панели Finder.
Обратите внимание, что с iOS8 папки симуляторов находятся в совершенно другом каталоге - действительно разделены на несколько каталогов, с именами папок для файлов приложений, которые меняются каждый раз при запуске приложения.
Ответ 2
iOS 8
Устройства
~/Library/Developer/CoreSimulator/Devices
Приложения
~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/
Ответ 3
Откройте программу "Монитор активности", найдите свое приложение (просто имя приложения, а не симулятор), нажмите "Информация" и откройте "Открыть файлы и порты". Скопируйте вторую запись (что-то вроде /Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp
). Это запущенное приложение, а <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/
- это пакет, а <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*
- папка с песочницей.
Если вы передадите это как open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"
на терминал, папка откроется в Finder.
Звучит сложно, но нет.
Ответ 4
Легко. Быстрый. Xcode 10+.
- Используйте
print(NSHomeDirectory())
и скопируйте путь.
- Откройте приложение Finder и нажмите
Shift+Cmd+G
- Вставьте скопированный путь и нажмите GO
Альтернативой для 1. является перехват точки останова и выполнение po NSHomeDirectory()
в консоли.
Ответ 5
based on zsero answer
Подробнее
macOS 10.13.1
Решение 1
Запустите следующую строку в терминале
Шаблон
open 'xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data' -a Finder
Полный образец
open 'xcrun simctl get_app_container booted com.Test data' -a
BUNDLEID_OF_YOUR_APP???
BUNDLEID_OF_YOUR_APP = "Идентификатор пакета"
![enter image description here]()
Особенности решения 1
- открыть файл, чтобы получить каталог симулятора приложений
Решение 2
Создайте bash-скрипт с именем вашего приложения и кодом:
script_file_name = 'basename "$0"'
open 'xcrun simctl get_app_container booted $script_file_name data'
![enter image description here]()
Особенности решения 2
- открыть файл, чтобы получить каталог симулятора приложений
- переименуйте файл, чтобы получить другую директорию симулятора приложений
Результат
![enter image description here]()
Ответ 6
Существует отличное приложение, которое также поддерживает симулятор XCode 6.
https://github.com/somegeekintn/SimDirs
Это потрясающе, используйте его!
Ответ 7
Если вы хотите автоматизировать получение местоположения или использовать эту папку в сценариях, вы можете получить точное местоположение с симулятора running с помощью следующей команды:
xcrun simctl get_app_container booted my.app.id data
Ответ 8
Старый пост, но я думаю, что стоит найти SimPholders, чтобы найти файлы вашего симулятора. Это элемент меню, который отслеживает ваши приложения симулятора и позволяет перейти непосредственно к их папкам и контенту. Это супер удивительно.
(исходный ответ здесь: fooobar.com/questions/35624/...)
Ответ 9
Основываясь на ответе @zsero, я создал короткий bash
скрипт, который напрямую открывает папку симулятора вашего идентификатора приложения. Очень кстати!
openappfolder.sh
#!/bin/bash
APPID=$1
if OUTPUT='xcrun simctl get_app_container booted $APPID data' ; then
open $OUTPUT
else
echo "$APPID not found!"
fi 2>/dev/null
Тогда просто
openappfolder.sh com.bundle.id
👍
Ответ 10
Проверить ответ в этом сообщении, Его команда знать действительную архитектуру в lib
fooobar.com/questions/50121/...
Ответ 11
В Xcode Version 8.2.1 (8C1002) я нашел файлы .app, установленные на симуляторе по этому пути: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator
Ответ 12
Для Swift 4.2 и выше поместите что-то вроде следующего кода:
#if targetEnvironment(simulator)
print("::::: SIMULATOR :::::")
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
print("App Documents Directory:\n\(documentsPath)\n")
}
#endif
... в месте с исходным кодом, например:
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// ...
return true
}
Используйте полученный путь с cd
или open
в командной строке терминала. Или вставьте путь в подсказке shift-cmd-G
"Перейти к папке…".
Связанный ответ, который включает более старые языковые версии: Путь к каталогу документов iOS 8 Beta Simulator