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 (я скрыл там несколько имен приложений):
![Меню плагина.]()
Я считаю это довольно удобным.