#android #delphi #deployment
#Android #delphi #развертывание
Вопрос:
Как быть уверенным, что развернутые файлы будут перезаписаны на устройстве Android?
Что касается:http://docwiki.embarcadero.com/RADStudio/Rio/en/Deployment_Manager
вы можете указать функцию перезаписи для каждого файла.
Это означает, что когда вы обновляете приложение, а в пути назначения удаленный файл уже существует (на мобильном устройстве), файл не будет перезаписан, если его временная метка более новая.
Возможно ли принудительно перезаписать новые файлы на устройстве?
тематическое исследование:
Я хочу развернуть базу данных «только для чтения» в приложении. В следующем обновлении я хочу развернуть актуальную версию, поэтому файл DB должен быть перезаписан. Но что, если драйвер базы данных изменит этот файл в устройстве? (Не гарантируется, что файл БД не будет изменен, даже не будет вставки или обновления в БД — возможно, драйвер может записать некоторые метаданные …).
Что, если у пользователя будет неправильное время на устройстве (например, будущие годы), и поэтому «старый» файл на устройстве будет иметь более новую временную метку?
Комментарии:
1. Я чувствую, что файлы, которые необходимо развернуть, — это файлы, которые не должны и не нуждаются в изменении приложением. Это ресурсы, подобные изображениям. Если приложение изменяет файл, оно делает это намеренно. Пользователь через разработчика хотел, чтобы это было именно так. Повторное изменение с помощью обновления приводит к потере данных. Как следствие, все файлы, которые могут быть изменены, должны не развертываться, а генерироваться при использовании.
2. Вы можете скопировать файл startupcopy.pas в папку вашего проекта и отредактировать его, чтобы разрешить перезапись в определенных обстоятельствах.
3. @nolaspeaker большое вам спасибо, startupcopy.pas — это очень интересная точка, с которой можно начать.
4. startupcopy.pas — это код, который фактически использует менеджер развертывания.