Подтвердить что ты не робот

Как имитировать обновление версии iOS?

Нам нужно протестировать наше приложение в контексте обновления iOS (например, 5.1 → 6.0). К сожалению, Apple не разрешает устройства для понижения. Мы думали сделать это в симуляторе, но разные версии симулятора - это разные среды. Я думаю, что мы можем скопировать пакет из одного симулятора в другой, но это не приведет к миграции брелка (не так ли?).

Спасибо!

4b9b3361

Ответ 1

Чтобы протестировать переход из одного состояния (до) в другое (после), вам необходимо установить приложение в состояние до.

Ваше приложение, конечно же, не будет работать во время обновления ОС, поэтому вам действительно нужно только беспокоиться о запуске приложения и обнаружении того, что ОС обновлена. Есть несколько вариантов:

  • Скопируйте все файлы данных приложений с устройства, на котором установлена ​​ "старая" версия iOS (5.1 в соответствии с вашим вопросом), на устройство, работающее с новой версией (6.0). Организатор в Xcode позволит вам легко скопировать приложение "контейнер" с устройства на ваш Mac или наоборот.

  • Сделать приложение записывать данные в "старый" формат.. Непригодно для приложения иметь методы для чтения и записи данных в разных форматах в зависимости от среды, поэтому часто проще заставить ваше приложение записывать данные в старом формате, чем на самом деле копировать с старого устройства.

Какой бы путь вы ни выбрали, подумайте о других местах (например, по умолчанию для пользователей), где вы можете сделать изменения, зависящие от ОС, и вернуть их к значениям, которые соответствуют предыдущей ОС. Это особенно относится к элементам связки ключей, которые не хранятся в изолированной программной среде вашего приложения.

Структуры тестирования модулей (например, инфраструктура Apple XCTest) обычно имеют механизм настройки, который вы могли бы использовать для reset вашего приложения для состояния до состояния, включая копирование файлов, добавление и удаление элементов связки ключей, настройку элементов по умолчанию и т.д. Вы можете затем добавьте модульные тесты, которые запускают любой код, который может быть задействован в обновлении, и проверяйте результаты. С помощью набора легко повторяемых тестов вы сможете легче отлаживать любые проблемы.

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

Ответ 2

Теперь вы все равно можете установить iOS 8.2. Когда выпущена новая версия, Apple оставляет обе версии открытыми для установки на короткое время. Пока это "окно подписки" открыто, вы можете обновить устройство, протестировать его, а затем восстановить его с изображения более старой версии. Поэтому вы можете провести интенсивное тестирование, пока окно открыто, но очевидно, что это не долгосрочное решение (оно обычно длится всего несколько дней).

Если у вас есть бюджет для этого, вы можете установить 8.2 на устройство, наклеить на него большую наклейку, говоря "не обновлять", и держать ее на 8.2 до тех пор, пока она уместна. Установите приложение на это устройство и сделайте резервную копию (при включенном резервном шифровании, чтобы вставить записи в цепочку ключей), а затем восстановите эту резервную копию на другом устройстве, которое на 8.3 - это в основном такая же процедура, которую вы пройдете при выполнении обновления/восстановить через iTunes, чтобы он был довольно близок. Конечно, это будет совсем не то же самое, что и обновление OTA на устройстве, но для этого см. Вариант 1 выше (и скоро его увидеть).