Настройка подписывания кода Android в Центре приложений
Внимание
Центр приложений Visual Studio планируется выйти на пенсию 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio до тех пор, пока он не будет полностью прекращен, существует несколько рекомендуемых вариантов, которые можно перенести.
Дополнительные сведения о временной шкале поддержки и альтернативах.
Совет
Для пользователей Xamarin.Android процесс немного отличается. Дополнительные сведения см. в руководстве по подписи кода Xamarin.Android.
Подписывание приложения — это требование для запуска приложения на реальных устройствах во время процесса разработки или распространения его через бета-программу или в Магазине Play. Без подписывания кода приложение может работать только в эмуляторе.
Когда Центр приложений создает приложение Android с типом сборки отладки, хранилище ключей для разработчика не требуется, но может быть отправлено. Эти сборки будут автоматически подписаны кодом с помощью ключа отладки. Для сборки выпуска, которая будет развернута, отправьте хранилище ключей в Центр приложений.
Создание хранилища ключей
Если у вас нет хранилища ключей, его можно создать в Android Studio. Инструкции по созданию хранилища ключей можно найти в официальном руководстве пользователя Android Studio.
Настройка подписывания кода
Центр приложений поддерживает три различных способа настройки подписывания кода для приложений Android. Для всех трех методов сначала необходимо перейти к конфигурации сборки и включить подписывание кода:
- Перейдите в приложение в Центре приложений.
- Перейдите к сборке.
- Перейдите в ветвь, которую вы хотите настроить, выбрав ее из списка.
- Используйте меню "Параметры" в правом верхнем углу или выберите "Настроить ", если ваша ветвь еще не настроена для сборки.
- Включение сборок подписей.
- Нажмите кнопку Сохранить.
Затем, в зависимости от вашего сценария, используйте наиболее подходящие из трех вариантов в разделах ниже. Первый вариант включает проверку учетных данных в репозитории, а другие два используют Центр приложений для обработки учетных данных.
По состоянию на Android 11 необходимо использовать подписыватель APK (если вы используете уровень API 30), так как он установит некоторые дополнительные схемы "Схема подписи APK версии 2 теперь требуется". Центр приложений теперь (с 17 декабря 2020 г.) подписывает приложения Android с помощью подписи APK внутри системы, а не JAR-подписыватель, который использовался ранее. В рамках функции для включения подписывания APK в Центре приложений была реализована задача подписывания Android версии 3, и требования к новой задаче подписывания были изменены способ сохранения файла хранилища ключей для хранения файла хранилища ключей в защищенном файле AzDO (задача сборки и выпуска Android — Azure Pipelines | Документация Майкрософт).
Предупреждение
Все конфигурации сборки, которые были отправлены в хранилище ключей до 17 декабря 2020 г., по-прежнему используют метод подписи APK версии 2 (jarsigner). Чтобы использовать поток подписывания схемы подписи APK версии 3, пользователям нужно просто повторно отправить файлы хранилища ключей и сохранить конфигурацию ветви.
Примечание.
Использование подключаемого модуля Android Gradle версии 4.1.x не полностью поддерживается. Чтобы использовать эту версию, необходимо добавить следующий параметр в gradle.properties
файл:
android.useNewApkCreator = false
А. Хранение всего в конфигурации Gradle
Вы можете указать сведения о подписи в build.gradle
файле (уровень приложения). Сведения о подписи, а также все учетные данные и сведения о хранилище ключей будут отображаться в репозитории. Сначала добавьте все элементы, необходимые для кода, и проверьте их в репозитории. Затем в конфигурации сборки в Центре приложений включите параметры My Gradle полностью настроены для автоматической обработки подписывания.
B. Отправка всего в Центр приложений
Вы можете отправить хранилище ключей и настроить учетные данные подписывания через Центр приложений. В этом случае Центр приложений сначала создаст приложение Android, а затем запустите шаг подписи после успешной сборки.
Примечание.
Сборка может быть подписана только один раз. Убедитесь, что у вас нет конфликтов с конфигурациями подписывания в конфигурации Gradle для выбранного варианта сборки. Если в Центре приложений и в файле Gradle есть параметры подписывания, сборка может быть подписана дважды, и это приводит к конфликтам.
Настройте конфигурацию сборки в Центре приложений следующим образом:
- Отключить параметры Gradle полностью настроены для автоматического обработки подписывания.
- Отправьте файл хранилища ключей в раскрывающийся файл хранилища ключей. Вы можете перетащить файл в поле или щелкнуть его и найти файл. Файлы хранилища ключей имеют расширение
.keystore
или.jks
. - Введите пароль хранилища ключей, псевдоним ключа и пароль ключа в соответствующих полях. Эти значения совпадают с теми, которые вы ввели в Android Studio при подписи сборки.
C. Хранение сведений о подписи в репозитории с переменными среды
Используйте этот метод, если репозиторий уже содержит хранилище ключей, но вы не хотите хранить учетные данные там. Во время сборки учетные данные будут предоставлены как системные свойства сборки Gradle. См. следующий пример кода о том, как использовать их:
android {
signingConfigs {
releaseSigningConfig {
storeFile rootProject.file("app/testapp.jks")
storePassword System.getProperty("APPCENTER_KEYSTORE_PASSWORD")
keyAlias System.getProperty("APPCENTER_KEY_ALIAS")
keyPassword System.getProperty("APPCENTER_KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.releaseSigningConfig
}
}
}
В приведенном выше коде защита значений за системными свойствами, внедренными в сборку, обеспечивает безопасность учетных данных подписывания. Значения шифруются и доступны только агентам сборки во время сборки. Значения можно указать через Центр приложений. Вы также можете жестко закодировать любой из значений и проверить их в репозитории. Чтобы использовать Центр приложений для защиты значений, выполните следующие действия.
- Перейдите к конфигурации сборки.
- Убедитесь, что флажок " Мои параметры Gradle" полностью настроены для автоматической обработки подписывания .
- Введите пароль хранилища ключей, псевдоним ключа и пароль ключа в соответствующих полях. Эти значения совпадают с теми, которые вы ввели в Android Studio при подписи сборки.
Если вы используете вкусы продукта, вам может потребоваться настроить код выше, чтобы все конфигурации выпуска использовали правильную конфигурацию подписи.
Примечание.
Если вы используете signingConfig
этот параметр в buildTypes
разделе в build.gradle
файле (уровень приложения), во время сборки Центра приложений могут возникнуть ошибки подписывания кода. Это особенно важно для приложений, использующих React Native для Android версии 0.60.x и более поздних версий:
Execution failed for task ':app:validateSigningRelease'.
Keystore file '.../android/app/debug.keystore' not found for signing config 'debug'
Чтобы устранить эту проблему, необходимо отправить соответствующее хранилище ключей, используемое для подписывания в репозиторий, и включить параметры My Gradle полностью настроены для автоматического выполнения подписывания в конфигурации сборки на портале Центра приложений.
Если вы добавили хранилище ключей в конфигурацию сборки на портале Центра приложений, учитывайте, что этот подход потребуется удалить signingConfig
параметр из buildTypes
раздела build.gradle
файла (уровня приложения), если вы не обновили его из стандартного состояния шаблона проекта React Native.