Что происходит с локальными файлами при обновлении приложения? - PullRequest
0 голосов
/ 08 марта 2020

У меня есть приложение для iOS и Android, но я никогда не выпускал никаких обновлений, то есть оно имеет версию 1. Я хотел бы знать, что произойдет, когда я выпущу обновление (версия 2) произойдет с локальными файлами приложения в следующих ситуациях:

  1. Локальный файл приложения, отсутствующий в версии 1, был добавлен в версии 2 (например, изображение, которое было добавлено)
  2. Локальный файл приложения в версии 1 был удален в версии 2 (Например: изображение, которое было удалено, будет ли оно удалено или с ним ничего не случится?)
  3. Локальный файл приложения содержится в пакете версии 1, был изменен в версии 2 (например, изображение, которое было изменено)
  4. Локальный файл приложения, содержащийся в версиях 1 и 2 (точно такой же файл), был изменен приложение в версии 1 во время выполнения, когда оно обновляется до версии 2, вернется ли оно к оригиналу? (Например: база данных, существовавшая в версии 1, также существует в версии 2, но, поскольку она была изменена во время использования в версии 1, будет ли она заменена базой данных, содержащейся в версии 2, или сохранит изменения по сравнению с версией 1?)
  5. Локальный файл приложения, содержащийся в версии 1, был изменен во время выполнения версией 1, но также был изменен в версии 2 (например, база данных, существовавшая в версии 1, была изменена во время выполнения версией 1, но в версии 2 оно было переделано)

@ edit Мое приложение было создано в Delphi (firemonkey)

Ответы [ 2 ]

2 голосов
/ 08 марта 2020

Приложение на iOS распространяется в виде пакета (по сути, это zip-файл). Пакет только для чтения; это не может быть изменено во время выполнения. Когда приложение обновляется до iOS, весь пакет заменяется.

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

Для ваших случаев:

  1. Дополнительный файл будет в комплекте. Если вы хотите, чтобы этот файл находился в локальном хранилище, вам нужно скопировать его с помощью кода.
  2. Файл больше не будет присутствовать в комплекте. Любая локальная копия, сделанная вашей предыдущей версией, останется.
  3. Обновленный файл будет в комплекте. Любая локальная копия, сделанная вашей предыдущей версией, останется и не будет изменена.
  4. Приложение не может вносить изменения в файлы в комплекте, оно может только скопировать файл из пакета в локальное хранилище перед его изменением, так что это, по сути, случай 3.
  5. Опять это в основном случай 3.

Вещи могут отличаться на Android.

0 голосов
/ 08 марта 2020

Мое приложение было создано в Delphi (firemonkey), я не упоминал об этом, потому что думал, что замена локальных файлов будет произведена AppStore и PlayStore в обновлении. Но благодаря ответу Paulw11 я смог выяснить, что именно он Delphi отвечает за эту замену и содержит настраиваемое свойство в каждом файле с именем "Перезапись" .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...