Есть ли способ увидеть файловую систему на симуляторе iOS?


есть ли способ просмотреть файловую систему текущего или только что убитого симулятора iOS? Я бы согласился на возможность видеть файлы конкретного приложения, если есть способ сделать это.

обратите внимание, что я не хочу сделать это программно. Я хочу видеть / открывать файлы в Finder.

11 133

11 ответов:

обновление: начиная с iOS 8:

~ / Библиотека / Разработчик / CoreSimulator / Устройства

место раньше было:

~ / библиотека / поддержка приложений / симулятор iPhone

у него были каталоги для всех моделей симуляторов (4.0, 4.1, 5.0 и т. д.), которые вы когда-либо запускали, перейдите к тому, с которого вы работаете в Xcode.

после того, как в папке, перейдите в приложения, выберите опцию Finder, который показывает дату для файлов, и Сортировать по дата. Ваше приложение будет самым последним, так как оно только что изменило каталог...

внутри каталога находится все, что связано с вашим приложением. Вы даже можете отбросить файлы там между запусками, чтобы вернуться к сохраненной базе данных в известном состоянии, например...

Я хожу туда достаточно часто, я держу каталог симулятора iPhone в боковой панели Finder.

обратите внимание, что с iOS8 папки симулятора находятся в совершенно другом каталоге-действительно разделены в нескольких каталогах, с именами папок для конкретных файлов приложения, которые изменяются при каждом запуске приложения.

iOS 8

устройства

~/Library/Developer/CoreSimulator/Devices

приложения

~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/

Откройте программу "Монитор активности", найдите свое приложение (только имя приложения, а не симулятор), нажмите" Информация "и откройте"открытые файлы и порты". Скопируйте вторую запись (что-то вроде /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.

звучит сложно, но это не так.

есть отличное приложение, которое также поддерживает симулятор XCode 6.

https://github.com/somegeekintn/SimDirs

Это потрясающе, используйте его!

на основе zsero ответ

подробности

macOS 10.13.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

результат

enter image description here

Если вы хотите автоматизировать получение местоположения или использовать эту папку в скрипта, вы можете получить точное местоположение с под управлением симулятор со следующей командой:

xcrun simctl get_app_container booted my.app.id data

старый пост, но я думаю, стоит упомянуть SimPholders чтобы найти файлы симулятора. Это пункт меню, который отслеживает ваши приложения симулятора и позволяет перейти непосредственно к их папкам и содержимому. Это супер круто.

(оригинальный ответ здесь:https://stackoverflow.com/a/26557165/377384)

Проверьте ответ в этом посте, его команду, чтобы знать действительную архитектуру в lib

https://stackoverflow.com/a/41705886/1740250

на Xcode версии 8.2.1 (8C1002) я нашел .файлы приложения, установленные на симуляторе по этому пути:~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator

написать простой shell-скрипт для этого.

https://gist.github.com/BB9z/b913b30c1bca61bfa53d144ecce107f0

также рабочий процесс Альфреда доступен по адресу https://github.com/BB9z/xcode-config/blob/master/Alfred/Workflows/Xcode%20Directories.alfredworkflow

Я буду держать их в курсе.

основываясь на ответе @zsero, я сделал короткий bash скрипт, который непосредственно открывает папку симулятора идентификатор приложения. Очень удобно!

openappfolder.sh

#!/bin/bash

APPID=
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