Есть ли способ увидеть файловую систему на симуляторе 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+.

  1. Используйте print(NSHomeDirectory()) и скопируйте путь.
  2. Откройте приложение Finder и нажмите Shift+Cmd+G
  3. Вставьте скопированный путь и нажмите 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