2016-12-09 5 views
0

Я распределил файл .apk (debug mode) в закрытую группу пользователей (по электронной почте). Они играли с приложением, а некоторые данные хранятся в базе данных sqlite (внутренняя память). Недавно моя машина разбилась и потеряла все, включая debug.keystore. Мне нужно дать обновленную сборку сейчас (с новой машины), но, как вы знаете, она не будет устанавливать поверх старой сборки из-за несоответствия ключа.Потерянный файл debug.keystore

Эти данные, хранящиеся в базе данных sqlite, очень важны, так что есть ли способ получить этот файл db? Кроме того, если я учу телефон, я смогу установить обновление поверх уже установленной сборки без рассогласования ключей или могу ли я, по крайней мере, получить этот файл db, чтобы я мог получить доступ к данным с помощью другого приложения?

Заранее спасибо.

+0

Вы должны приложить усилия по поиску хранилища ключей. Потому что, как я знаю, решения нет. –

+0

Система отформатирована. Я не могу вернуть этот старый debug.keystore. Я также попытался получить файл debug.keystore из старого файла .apk, но не повезло. – Braj

ответ

0

Ваша ошибка в том, что вы распространяете свой apk, подписанный debug.keystore. Это неправильно, и вы сталкиваетесь с последствиями этого действия. debug.keystore генерируется динамически и может часто меняться (например, восстановление сайта android studio), и у вас нет уверенности в том, что следующая сборка будет подписана с тем же ключом. С этого момента вы не сможете обновить свое приложение, даже Google сам по себе не поможет.

Насколько я знаю, единственный шанс для вас - получить файл db вручную с телефона, установить новую версию вашего приложения с новым release.keystore и обменять новый пустой файл db на старый.

Обратите внимание, что если ваш файл db находится в частном хранилище вашего приложения, для доступа к этому файлу требуется root.

, если у вас уже есть доступ к файлам здесь ADB команда для перетягивания файла на ПК:

adb pull /sdcard/absolute/path/to/file/database.db C:/destination/of/file/on/PC