Я никогда не устанавливал пароли к своему хранилищу ключей и псевдониму, так как они создаются?

137

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

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

Я знаю, что для Android мы используем пароль Android , поэтому, если пароль по умолчанию Android, как его забыть? (Я уверен, что должен быть какой-то другой способ создания новых хранилищ ключей).

Наконец, если android является паролем по умолчанию, каков псевдоним по умолчанию?

Анас Азим
источник

Ответы:

409

Вход в режиме отладки

Инструменты сборки Android обеспечивают режим подписи отладки, который упрощает разработку и отладку приложения, в то же время отвечая требованиям системы Android для подписи вашего APK. При использовании режима отладки для сборки приложения инструменты SDK вызывают Keytool для автоматического создания хранилища ключей и ключа отладки. Этот ключ отладки затем используется для автоматической подписи APK, поэтому вам не нужно подписывать пакет собственным ключом.

Инструменты SDK создают отладочное хранилище ключей / ключ с заранее заданными именами / паролями:

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

При необходимости вы можете изменить местоположение / имя хранилища / ключа отладки или предоставить настраиваемое хранилище ключей / ключа для использования. Однако любое пользовательское хранилище ключей / ключ отладки должно использовать те же имена ключей и паролей ключей и пароли, что и ключ отладки по умолчанию (как описано выше). (Для этого в Eclipse / ADT перейдите в Windows> «Установки»> «Android»> «Сборка» .)

Внимание: вы не можете опубликовать ваше приложение, когда оно подписано сертификатом отладки.

Источник: Developer.Android

Сообщество
источник
Это было очень информативно. Принимая это как ответ. Еще один вопрос, сэр. Есть ли в одном хранилище ключей много ключей или хранилище ключей и ключ - это одно и то же?
Анас Азим
В хранилище ключей может быть много ключей, и вам придется создавать разные псевдонимы для ключей. Думаю, теперь становится понятным различие между ключом и хранилищем ключей. Keystore - это контейнер ключей
Я использовал его для подписи неподписанного apk, который я не смог установить: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~ ​​/ .android / debug.keystore my_unsigned.apk androiddebugkey Спасибо
Иван Моргилло
@ user2730944 Не могли бы вы, пожалуйста, отметить, как вы узнаете, какой пароль является «android», поскольку из предоставленного вами источника это не очевидно?
spin_eight
22

если вы хотите настроить их в Gradle, это должно выглядеть

signingConfigs {
        debug {
            storeFile file('PATH_TO_HOME/.android/debug.keystore')
            storePassword 'android'                   
            keyAlias 'AndroidDebugKey'
            keyPassword 'android'                     
        }
        ...
}
Даже чэн
источник
3

когда мы запускаем приложение в eclipse, apk generate по умолчанию подписывает Keystore, который предоставляется android.

Но если вы хотите загрузить свое приложение в игровой магазин, вам нужно создать свое собственное хранилище ключей. Eclipse уже предоставляет графический интерфейс для создания нового хранилища ключей. И вы также можете создать хранилище ключей через командную строку.

псевдоним по умолчанию

androiddebugkey
Бирадж Залавадия
источник
Спасибо за ваш ответ, но не знаете, что такое пароль для ключа, поскольку пароль для хранилища ключей был «android» (если я не ошибаюсь)
Anas Azeem
@AnasAzeem см. Мой ответ
3
Keystore name: "debug.keystore"

Keystore password: "android"

Key alias: "androiddebugkey"

Key password: "android"

Я использую эту информацию и успешно генерирую подписанный APK.

Рубель Хасан
источник
2

Лучше, чем все варианты, вы можете установить, signingConfigчтобы ваш был равным вашему debug.signingConfig. Для этого вам просто нужно сделать следующее:

android {
  ...
  buildTypes {
    ...
    wantedBuildType {
      signingConfig debug.signingConfig
    }
  }
}

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

brunodles
источник
Превосходно! Это краткий способ сделать тип сборки debugProguard устанавливаемым.
Jerry101
1

Все эти ответы и есть все еще только один отсутствует. Когда вы создаете свои учетные данные для аутентификации в разделе API Google консоли разработчика, убедитесь, что (особенно если это ваш первый), что вы нажали на опцию «экран согласия». Если у вас нет «заголовка» и любое другое обязательное поле заполнено, вызов не удастся с этой опцией.

user1318747
источник