Обработка файла хранилища ключей?

Что касается реагирования на родное приложение для Android, в документах подписи Visual Studio говорится, что если мое хранилище ключей не находится в моем репо, то мне нужно загрузить файл хранилища ключей contractor-release-key.keystore и установить учетные данные в центре приложений, и это то, что я сделал, однако , в сборке я получил эту ошибку:

jarsigner: Certificate chain not found for: ***.  *** must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain

Кроме того, в build.gradle, если я установил:

releaseSigningConfig {
            storeFile rootProject.file("app/contractor-release-key.keystore")
            storePassword System.getenv("APPCENTER_KEYSTORE_PASSWORD")
            keyAlias System.getenv("APPCENTER_KEY_ALIAS")
            keyPassword System.getenv("APPCENTER_KEY_PASSWORD")
        }

Я получаю сообщение об ошибке:

Execution failed for task ':app:validateSigningRelease'.
> Keystore file '/Users/vsts/agent/2.153.2/work/1/s/android/app/contractor-release-key.keystore' not found for signing config 'releaseSigningConfig'.

Есть идеи?

ИЗМЕНИТЬ

Когда я добавляю все входы в build.gradle и включаю файл хранилища ключей в репозиторий, я получаю эту ошибку:

Execution failed for task ':app:processReleaseManifest'.
> Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:9:5-54:19 to override.

person simo    schedule 17.06.2019    source источник
comment
Похоже, псевдоним и пароль должны быть неверными. Потому что, очевидно, он не будет пытаться распространять (или выполнять этот процесс), если у него нет файла .keystore. Обычно я тоже не помещаю свое хранилище ключей в репо, возможно, вы пытались использовать файл .jks вместо подписи?   -  person Saamer    schedule 18.06.2019


Ответы (2)


Чтобы устранить проблему:

  1. Вам нужно удалить или закомментировать любую конфигурацию выпуска или отладки внутри вашего android/app/build.gradle, так как мы позволим AppCenter разобраться с этим на панели инструментов.
  2. Перейдите на панель инструментов AppCenter и добавьте свои учетные данные хранилища ключей в AppCenter и убедитесь, что вы также загрузили файл хранилища ключей.
  3. Зафиксируйте изменения, которые вы сделали внутри android/app/build.gradle, в свой репозиторий.
  4. Снова запустите сборку в ветке App Center.

Это должно решить вашу проблему.

Если вам интересно, почему мы это делаем. Это связано с тем, что AppCenter предназначен для обработки всего этапа процесса подписания за вас, поэтому вам не нужно самостоятельно добавлять какую-либо конфигурацию Gradle в репозиторий внутри android/app/build.gradle или где-либо еще в репозитории. Вся цель наличия конфигурации среды вне репозитория заключается в том, что это хорошая практика безопасности. Я знаю, что в документации по AppCenter это не очень понятно.

Надеюсь, это решит вашу проблему.

person Ahmad Khudeish    schedule 08.10.2019

У меня тоже похожая проблема. Речь идет о хранилище ключей, а не о подписании выпуска.

В качестве одного из решений попробуйте открыть свой проект в студии Android из-за синхронизации и рефакторинга. Попробуйте построить там и проверьте рекомендации

Можете ли вы сказать мне свою версию Gradle? Может быть некоторая синтаксическая ошибка с библиотеками в версии Gradle выше 3.

p.s. Не судите строго, но очень хочется помочь решить эту проблему

person Sabit Rakhim    schedule 26.06.2019