«Переустановка не удалась из-за разных подписей приложений» - возможно переопределить? - PullRequest
8 голосов
/ 30 апреля 2011

Я разрабатываю свое приложение на двух компьютерах, поэтому, очевидно, я получаю сообщение об ошибке в Eclipse «Переустановка не удалась из-за разных подписей приложений» при попытке развернуть на физическом устройстве, на котором есть копия приложения с другого компьютера.

У меня вопрос: возможно ли это переопределить, то есть развернуть приложение, ОПУСТИТЬ разные подписи?

Причина в том, что у моего приложения есть база данных, которую я не хочу стирать, потому что я исправляю связанную с ней ошибку. Существует ли быстрое исправление, которое не требует удаления приложения / копирования файла хранилища ключей между ПК? Держу пари, что нет, но просто спрашиваю. Спасибо!

Ответы [ 2 ]

18 голосов
/ 30 апреля 2011

НЕТ, нет способа переопределить это. Из документации :

Когда система устанавливает обновление для приложения, она сравнивает сертификаты в новой версии с сертификатами в существующей версии. Если сертификаты совпадают точно, включая данные сертификата и порядок, система разрешает обновление.

Один из способов обойти это - попытаться подписать приложения на обеих машинах одним и тем же хранилищем ключей. Если вы используете Eclipse,

  1. Зайдите в Настройки -> Android -> Сборка Там вы должны найти путь к «хранилищу ключей отладки по умолчанию». (обычно что-то вроде /Users/username/.android/debug.keystore.
  2. Скопируйте этот файл на новый компьютер.
  3. Внутри Eclipse на новом компьютере откройте Настройки -> Android -> Build
  4. Введите путь к файлу в поле «Пользовательское хранилище ключей отладки»
  5. Сохраните, а затем вы сможете запустить свое приложение и подписать его тем же ключом.

Удачи

UPDATE:

Теперь можно настроить ключ подписи в Gradle (который будет использоваться Android Studio) и включить ваш ключ отладки в систему управления версиями. Просто добавьте ключ в папку вашего проекта, а затем добавьте следующее в файл build.gradle:

signingConfigs {
        debug {
            storeFile file("../debug.keystore")
        }
    }

А также добавьте это в типы сборки:

buildTypes {        
    debug {
        debuggable true
        signingConfig signingConfigs.debug
    }
}

Подробнее см. документацию

3 голосов
/ 30 апреля 2011

У меня вопрос: возможно ли это переопределить, то есть развернуть приложение, НЕСОСТОЯТЬ разные подписи?

Вариант № 1: Удалить приложение, а затем переустановить.

Вариант № 2. Синхронизируйте файлы debug.keystore между двумя компьютерами, поэтому вы подписываетесь одним и тем же ключом в обоих местах.

Существует ли быстрое исправление, не требующее удаленияприложение / копирование файла хранилища ключей между ПК?

Нет, извините.

...