Xcode 6/iOS 8 Данные симулятора и папка пакета script

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

Ранее мы можем получить доступ к каталогу и файлу .app в

/Users/me/Library/Application Support/iPhone Simulator/7.1/Applications/SomeCrpyticNumber

но в Xcode 6 каталог симулятора полностью отличается:

~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Bundle/CrypticNumber2/MyApp.app

и

~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Data/CrypticNumber3/Documents    

где CryptNumber 1,2 и 3 все разные. Есть ли способ, по которому я могу получить соответствующую папку Documents после того, как найду папку, содержащую файл .app? У меня возникли проблемы с этим.

почему...?

Если я построил приложение на симуляторе iOS 7, каталог документов и файл .app находятся в одной и той же папке, как раньше, но iOS 8 отделяет их.

Единственное решение, о котором я могу сейчас подумать, - это создать пару папок с последними датами создания/модификации.

Edit:

на боковой ноте, этот инструмент очень полезен для поиска ваших папок симулятора на xcode 6 сейчас: http://simpholders.com/

Ответ 1

Это тоже подслушивало меня. Я не смог решить это на 100%, но я создал быстрое и грязное приложение, чтобы немного помочь. Я всегда могу найти каталог устройств, но я еще не нашел способ надежно отслеживать каталоги пакетов/песочницы. Источник: https://github.com/somegeekintn/SimDirs

Изменить: пошел вперед и начал сканирование mobile_installation.log, чтобы найти дополнительные места. Кажется, все это находит.

Ответ 2

У меня возникла такая же проблема, когда я сохранил полный путь, используя CoreData. При получении полного пути он возвращает null, потому что UUID папки документа различен при каждом перезапуске приложения. Следующее - мое решение:

  • Обязательно сохраняйте только относительный путь документа/файла в CoreData. Например. магазин "Files/image.jpg" вместо "/Users/yourname/.../Applications/UUID/Document/Files/image.jpg".
  • Для получения местоположения документа приложения используйте следующее:

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

  • Объедините оба # 2 и # 1, чтобы получить полный путь к документу/файлу, который вы хотите получить.
Вы можете обратиться к заметке разработчика Apple: https://developer.apple.com/library/ios/technotes/tn2406/_index.html

Ответ 3

Существует большой плагин для Xcode, который позволяет вам открыть каталог для любого приложения, которое вы хотите. Он называется ZLGotoSandboxPlugin, и вы можете установить его через Alcatraz. Этот плагин добавляет специальное подменю в меню "Файл" Xcode (я скрыл там несколько имен приложений): Меню плагина.

Я считаю это довольно удобным.