Как создать резервную копию сайдлоаднутых приложений и их данных
Как создавать резервные копии установленных через сайдлоад приложений и их данных
Один из самых частых вопросов у тех, кто только начинает пользоваться сайдлоадингом: “Если у моего приложения отзовут сертификат, потеряю ли я свои данные?” Хорошая новость в том, что iOS хранит данные приложения и сам бинарный файл отдельно друг от друга, поэтому переустановка приложения через Scarlet iOS обычно сохраняет ваши данные автоматически. Менее обнадёживающая новость в том, что это работает не всегда, и всё зависит от того, как именно конкретное приложение хранит свои данные.
В этом руководстве подробно объясняется, как iOS управляет данными установленных через сайдлоад приложений, какие способы резервного копирования работают надёжно, как защитить важные данные вроде файлов сохранений эмуляторов и настроек приложений, и что делать, если автоматическое сохранение данных не срабатывает.
Как iOS хранит данные приложений
Каждое приложение в iOS хранит свои данные в песочнице, изолированном контейнере, привязанном к Bundle ID приложения. Этот контейнер отделён от самого бинарного файла приложения. Удаление приложения удаляет и его контейнер данных, однако опция “Выгрузить приложение” (Настройки > Основные > Хранилище iPhone) удаляет только само приложение, сохраняя его данные. При переустановке того же приложения iOS связывает новый бинарный файл с уже существующим контейнером данных.
Для приложений, установленных через сайдлоад, механика почти такая же, если переустановленное приложение имеет тот же Bundle ID, что и исходное. Если вы переустанавливаете тот же IPA через Scarlet iOS после отзыва сертификата, и у него сохраняется тот же Bundle ID, система обычно связывает его с уже существующим контейнером данных, поэтому ваши файлы сохранений, токены входа, кэшированные данные и настройки приложения, как правило, сохраняются после переустановки.
Важная оговорка: если вы удалите приложение вручную перед переустановкой (а не просто установите поверх), iOS удалит и его контейнер данных. Избегайте этого, если только вы намеренно не хотите начать с чистого листа.
Резервное копирование iCloud и приложения, установленные через сайдлоадинг
Резервное копирование iCloud (Настройки > [Ваше имя] > iCloud > Резервная копия iCloud) создаёт резервную копию вашего устройства, включая данные приложений. Вопрос в том, включаются ли в эту копию данные приложений, установленных через сайдлоадинг.
Ответ зависит от того, как приложение работает с резервным копированием. Приложения могут помечать свои контейнеры данных как подходящие для резервного копирования, не подлежащие резервному копированию или временные. Большинство хорошо разработанных приложений помечают свои основные каталоги данных как подходящие для резервного копирования, и iOS включает эти данные в резервную копию iCloud независимо от того, было ли приложение загружено из App Store или установлено через сайдлоадинг.
Однако при восстановлении из резервной копии iCloud есть одна особенность: App Store попытается переустановить все приложения, данные которых есть в резервной копии. Приложений, установленных через сайдлоадинг, нет в App Store, поэтому они не будут автоматически переустановлены при восстановлении. Данные приложения будут присутствовать в восстановленной резервной копии, но без установленного двоичного файла приложения вы не сможете получить к ним доступ, пока не переустановите приложение через Scarlet iOS.
Порядок действий при восстановлении устройства с приложениями, установленными через сайдлоадинг:
- Восстановите данные из резервной копии iCloud или настройте устройство как новое
- Дайте приложениям из App Store восстановиться автоматически
- Откройте Scarlet iOS и переустановите свои приложения, установленные через сайдлоадинг
- Переустановленные приложения снова подключатся к своим контейнерам данных из резервной копии
Резервное копирование через iTunes и Finder
Подключение iPhone к Mac или PC и создание локальной резервной копии через Finder (macOS Catalina и новее) или приложение Apple Devices либо iTunes (Windows) создаёт полноценную резервную копию, включающую данные приложений. Как и резервное копирование iCloud, оно пропускает файлы, которые приложение помечает как исключённые из резервного копирования, но при этом не зависит от объёма вашего облачного хранилища iCloud.
Зашифрованные локальные резервные копии особенно ценны для приложений, установленных через сайдлоадинг, поскольку они включают данные цепочки ключей (keychain): токены входа, пароли и учётные данные аутентификации, которые приложения хранят в keychain iOS. Без шифрования данные keychain исключаются из резервных копий.
Чтобы создать зашифрованную локальную резервную копию через Finder:
- Подключите iPhone к Mac и откройте Finder
- Выберите своё устройство в боковой панели слева
- На вкладке “Основные” нажмите “Зашифровать локальную копию” и задайте пароль
- Нажмите “Создать резервную копию”
Ручное резервное копирование важных данных приложений
Для самых важных данных, особенно файлов сохранений и состояний игр в эмуляторах, ручное резервное копирование является наиболее надёжным подходом, поскольку оно не зависит от механизмов резервного копирования iOS и не требует полного восстановления устройства для получения доступа.
Сохранения эмуляторов
Разные эмуляторы хранят файлы сохранений в разных местах, и способ резервного копирования отличается соответственно.
- Delta: Delta умеет синхронизировать сохранения через встроенную службу синхронизации (Google Drive или Dropbox), а также может экспортировать отдельные файлы сохранений.
- PPSSPP: Сохранения PSP хранятся в папке PSP/SAVEDATA внутри каталога Documents приложения. Вы можете получить к ней доступ через приложение «Файлы» (На моем iPhone > PPSSPP) и вручную скопировать папку в iCloud Drive.
- Provenance: Проверьте настройки Provenance на предмет параметров синхронизации и импорта/экспорта, либо скопируйте сохранения через приложение «Файлы».
- RetroArch: Сохранения находятся в каталоге RetroArch > saves, доступном через приложение «Файлы», откуда их можно скопировать в iCloud Drive.
Приложения на основе документов
Многие продуктивные и утилитарные приложения хранят свои файлы в доступном каталоге Documents, который отображается в приложении «Файлы» в разделе «На моем iPhone > [название приложения]». Файлы отсюда можно скопировать в iCloud Drive, передать через AirDrop на Mac или отправить по электронной почте прямо из приложения «Файлы» для сохранности.
Использование iCloud Drive в качестве места для ручного резервного копирования
Наиболее практичная стратегия ручного резервного копирования для большинства данных сайдлоаднутых приложений – копировать важные файлы в iCloud Drive. Это создает внешнюю копию, которая сохранится при любых событиях с вашим iPhone, включая полную замену устройства.
Создайте структуру папок в iCloud Drive для данных ваших сайдлоаднутых приложений: создайте папку «Sideloaded App Backups» с подпапками для каждого приложения. Выработайте привычку копировать туда важные файлы перед крупными обновлениями iOS или когда вы знаете, что срок действия сертификата приближается к концу.
Советы по эффективному управлению хранилищем при поддержании таких резервных копий вы найдете в нашем руководстве как освободить место на iPhone для большего числа сайдлоаднутых приложений.
Что происходит с данными при переустановке
Чтобы полностью прояснить процесс переустановки после отзыва сертификата:
- Сценарий 1: Переустановка без предварительного удаления: данные приложения сохраняются. iOS связывает новый бинарный файл с существующим контейнером данных. Это происходит в обычном случае, когда вы переустанавливаете приложение поверх уже имеющегося.
- Сценарий 2: Удаление приложения с последующей переустановкой: при удалении приложения его контейнер данных удаляется. Переустановка начинается с чистого листа, если только вы не восстановите данные из резервной копии.
- Сценарий 3: Восстановление из резервной копии с последующей переустановкой sideload-приложения: данные восстанавливаются из резервной копии и связываются с переустановленным бинарным файлом. Корректно работает для резервной копии iCloud, если приложение сохраняло в неё свои данные.
Самый безопасный вариант – всегда переустанавливать приложение без предварительного удаления. В Scarlet iOS достаточно просто переустановить приложение поверх существующего, вместо того чтобы сначала его удалять.
Как сохранить настройку sideload-приложений в целости
При сочетании резервных копий iCloud, ручного экспорта файлов сохранений и аккуратной практики переустановки данные вашего sideload-приложения могут быть защищены не хуже, чем у любого приложения из App Store. Главное – выработать привычку заранее, а не после того, как данные уже были потеряны.
Подробнее о самом процессе переустановки читайте в нашем полном руководстве: как переустановить Scarlet iOS без потери данных.
Хотите быть уверены, что ваши sideload-приложения надёжно защищены? Начните с качественной установки через Scarlet iOS и формируйте привычку делать резервные копии с первого дня.