Распространение приложений Firebase. Войдите в Firebase, используя учетную запись службы gcloud в Azure.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Распространение приложений Firebase. Войдите в Firebase, используя учетную запись службы gcloud в Azure.

Сообщение Anonymous »

Я пытаюсь настроить распространение приложений Firebase в нашем конвейере Azure для нашего приложения, используя учетную запись службы для аутентификации. Однако я столкнулся со следующей ошибкой:
/bin/bash --noprofile --norc /Users/runner/work/_temp/9862a4f1-6542-4b7b-9dbb-9782561da5bb. sh Попытка аутентификации Firebase с учетной записью службы... ##[debug]Ресурсы среды агента - Диск: / Доступно 124774,09 МБ из 332471,96 МБ, Память: использовано 7722,00 МБ из 14332,00 МБ, ЦП: Использование 99,30% Ошибка: не удалось выполнить аутентификацию , вы запустили вход в Firebase? Аутентификация Firebase не удалась. ##[debug]Код выхода 1, полученный от инструмента '/bin/bash' ##[debug]Потоки STDIO закрыты для инструмента '/bin/bash' ##[error]Bash завершился с кодом '1'.
Я убедился, что предоставлен ключ сервисного аккаунта и установлена ​​переменная среды GOOGLE_APPLICATION_CREDENTIALS. Ниже приведена конфигурация YAML моего конвейера:
триггер: нет пул: vmImage: параметры 'macOS-latest': - имя: appVariant displayName: 'App Variant' тип: строка по умолчанию: '{{ appName}}' значения: - '{{appName}}' - 'BCDC' - имя: firebaseEnv displayName: 'Firebase Environment' тип: строка по умолчанию: значения 'UAT': - 'UAT' - 'Pilot' - имя: testGroup displayName: «Test Group» тип: строка по умолчанию: «Android_UAT_Testers» значения: - «Android_UAT_Testers» - «Android_Pilot_Testers» - имя: ReleaseNotes displayName: «Release Notes» тип: строка по умолчанию: «Примечания к выпуску не предоставлены». этапы: - этап: задания сборки: - задание: BuildJob timeoutInMinutes: 120 переменных: GRADLE_USER_HOME: $(Pipeline.Workspace)/.gradle шаги: - задача: входы CmdLine@2: скрипт: "sudo rm -rf $ANDROID_HOME/ndk/ && sudo rm -rf $ANDROID_HOME/ndk-bundle/" - ${{ if eq(parameters.appVariant, '{{appName}}') }}: - ${{ if eq(parameters.firebaseEnv, 'UAT') }}: - задача: Gradle@2 displayName: 'Gradle Compile {{appName}} для UAT' входные данные: gradleWrapperFile: 'gradlew' задачи: 'assembleUatOne{{appName}}GoogleDebug' - ${{ if eq(parameters.firebaseEnv) , 'Pilot') }}: - задача: Gradle@2 displayName: 'Gradle Compile {{appName}} for Pilot' входные данные: gradleWrapperFile: 'gradlew' задачи: 'assemblePilotOne{{appName}}GoogleDebug' - ${{ if eq(parameters.appVariant, 'BCDC') }}: - ${{ if eq(parameters.firebaseEnv, 'UAT') }}: - задача: Gradle@2 displayName: 'Gradle Compile BCDC для UAT' входные данные: gradleWrapperFile: Задачи 'gradlew': 'assembleUatOne{{appName}}BcdcGoogleDebug' - ${{ if eq(parameters.firebaseEnv, 'Pilot') }}: - задача: Gradle@2 displayName: 'Gradle Compile BCDC for Pilot' входные данные: gradleWrapperFile : задачи 'gradlew': 'assemblePilotOne{{appName}}BcdcGoogleDebug' - задача: CopyFiles@2 входные данные: SourceFolder: $(Build.SourcesDirectory) содержимое: '**/*.apk' targetFolder: '$(build.artifactStagingDirectory) ' overWrite: true - задача: PublishBuildArtifacts@1 inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)/app/build/outputs/apk/' ArtifactName: 'apks' publicLocation: 'container' - задача: CmdLine@2 displayName: ' Проверьте учетную запись службы и входные данные учетных данных: скрипт: | echo "$(MOBILEFIREBASEACCOUNTSERVICE)" > $(Pipeline.Workspace)/service-account.json экспорт GOOGLE_APPLICATION_CREDENTIALS=$(Pipeline.Workspace)/service-account.json echo "GOOGLE_APPLICATION_CREDENTIALS имеет значение: $GOOGLE_APPLICATION_CREDENTIALS" echo "Служебный аккаунт JSON файл:" cat $(Pipeline.Workspace)/service-account.json | jq '.' if [ -f "$(Pipeline.Workspace)/service-account.json" ]; затем отобразите «Файл учетной записи службы существует». else echo «Файл учетной записи службы НЕ существует». выход 1 fi - задача: CmdLine@2 displayName: «Установить Firebase CLI» входные данные: скрипт: «npm install -g firebase-tools» - задача: CmdLine@2 displayName: «Аутентификация Firebase CLI с учетной записью службы» входные данные: скрипт: | echo «Попытка аутентификации Firebase с учетной записью службы...» if npx firebase project:list; затем отобразите «Аутентификация Firebase прошла успешно». else echo «Ошибка аутентификации Firebase». выход 1 fi - задача: CmdLine@2 displayName: 'Распространить APK в Firebase (UAT)' условие: eq('${{parameters.firebaseEnv }}', 'UAT') входные данные: скрипт: | npx firebase appdistribution:distribute "$(build.artifactStagingDirectory)/app/build/outputs/apk/uatOne{{appName}}Google/debug/app-uat-one{{appName}}-google-debug.apk" \ - -app $(FIREBASE_APP_ID) \ --groups ${{parameters.testGroup }} \ --release-notes "${{parameters.releaseNotes }}" \ --debug - Task: CmdLine@2 displayName: 'Распространить APK по Условие Firebase (Pilot): eq('${{parameters.firebaseEnv }}', 'Pilot') входные данные: скрипт: | npx firebase appdistribution:distribute "$(build.artifactStagingDirectory)/app/build/outputs/apk/uatOne{{appName}}Google/release/app-uat-one{{appName}}-google-release.apk" \ - -app $(FIREBASE_APP_ID) \ --groups ${{parameters.testGroup }} \ --release-notes "${{parameters.releaseNotes }}" \ --debug
Сведения об ошибке:
Похоже, что Firebase CLI не выполняет проверку подлинности с использованием учетных данных учетной записи службы.
Ошибка предлагает выполнить вход в систему Firebase, но, поскольку я использую учетную запись службы, это не должно В этом нет необходимости.
Что я пробовал:
Проверил, что учетная запись службы имеет достаточные разрешения для распространения приложений Firebase.
Убедился, что переменная среды GOOGLE_APPLICATION_CREDENTIALS установлена ​​правильно.
Запустите команду команда npx firebase project:list для проверки аутентификации, но она завершается с той же ошибкой.

триггер: нет
пул:
vmImage: 'macOS-latest'
параметры:
  • имя: appVariant
    displayName: 'App Variant'
    тип: строка
    по умолчанию: '{{appName}}'
    значения:

    '{{appName}}'
  • 'BCDC'
[*]имя: firebaseEnv
displayName: 'Firebase Environment'
тип: строка
по умолчанию: 'UAT'
значения:
< ul>
'UAT'
[*]'Пилот'


[*]имя: testGroup
displayName: 'Test Group'
тип: строка
по умолчанию: 'Android_UAT_Testers'
значения:
< ul>
'Android_UAT_Testers'
[*]'Android_Pilot_Testers'


[*]имя: ReleaseNotes
displayName: «Примечания к выпуску»
тип: строка
по умолчанию: «Примечания к выпуску не предоставлены».


этапы:
  • этап: создание
    рабочих мест:
    < ul>
    job: BuildJob
    timeoutInMinutes: 120
    переменные:
    GRADLE_USER_HOME: $(Pipeline.Workspace)/.gradle
    шаги:

    задача: CmdLine@2
    входные данные:
    скрипт: "sudo rm -rf $ ANDROID_HOME/ndk/ && sudo rm -rf $ANDROID_HOME/ndk-bundle/"
  • ${{ if eq(parameters.appVariant, ' {{appName}}') }}:

    ${{ if eq(parameters.firebaseEnv, 'UAT') }}:

    задача: Gradle@2
    displayName: 'Gradle компилировать {{appName}} для UAT'
    входные данные:
    gradleWrapperFile: 'gradlew'
    задачи: 'assembleUatOne{{appName}}GoogleDebug'
[*]${ { if eq(parameters.firebaseEnv, 'Pilot') }}:
  • task: Gradle@2
    displayName: 'Gradle Compile {{appName) }} для Pilot'
    входные данные:
    gradleWrapperFile: 'gradlew'
    tasks: 'assemblePilotOne{{appName}}GoogleDebug'


[*]${{ if eq(parameters.appVariant, 'BCDC') }}:
  • ${{ if eq(parameters.firebaseEnv, 'UAT') }}:

    task: Gradle @2
    displayName: 'Gradle Compile BCDC для UAT'
    входные данные:
    gradleWrapperFile: 'gradlew'
    задачи: 'assembleUatOne{{appName}}BcdcGoogleDebug'
[*]${{ if eq(parameters.firebaseEnv, 'Pilot') }}:
  • task: Gradle@2
    displayName: 'Gradle Compile BCDC for Pilot'
    входные данные:
    gradleWrapperFile: 'gradlew'
    tasks: 'assemblePilotOne{{appName}}BcdcGoogleDebug '


[*]задача: CopyFiles @2
входные данные:
SourceFolder: $(Build.SourcesDirectory)
содержимое: '**/*.apk'
targetFolder: '$(build.artifactStagingDirectory)'
overWrite: true

[*]задача: PublishBuildArtifacts@1
входные данные:
pathtoPublish: '$(Build.ArtifactStagingDirectory )/app/build/outputs/apk/'
artifactName: 'apks'
publishLocation: 'container'

[*]
задача: CmdLine@2
displayName: «Проверка учетной записи службы и учетных данных»
входные данные:
скрипт: |
echo "$(MOBILEFIREBASEACCOUNTSERVICE)" > $(Pipeline.Workspace) /service-account.json
экспортировать GOOGLE_APPLICATION_CREDENTIALS=$(Pipeline.Workspace)/service-account.json

Код: Выделить всё

echo "GOOGLE_APPLICATION_CREDENTIALS is set to: $GOOGLE_APPLICATION_CREDENTIALS"
echo "Service account JSON file:"
cat $(Pipeline.Workspace)/service-account.json | jq '.'

if [ -f "$(Pipeline.Workspace)/service-account.json" ]; then
echo "Service account file exists."
else
echo "Service account file does NOT exist."
exit 1
fi
[*]задача: CmdLine@2
displayName: «Установить Firebase CLI»
входные данные:
скрипт: 'npm install -g firebase-tools'

[*]task: CmdLine@2
displayName: 'Аутентификация Firebase CLI с помощью учетной записи службы'
входные данные:
скрипт: |
echo «Попытка аутентификации Firebase с учетной записью службы...»
if npx firebase project:list; затем
echo «Аутентификация Firebase прошла успешно».
else
echo «Аутентификация Firebase не удалась».
exit 1
fi

задача: CmdLine@2
displayName: 'Распространить APK в Firebase (UAT)'
условие: eq('${{parameters.firebaseEnv }}', 'UAT')
входные данные:
скрипт: |
npx firebase appdistribution:distribute "$(build.artifactStagingDirectory)/app/build/outputs/apk/uatOne{{appName}}Google/ debug/app-uat-one{{appName}}-google-debug.apk"

--app $(FIREBASE_APP_ID)

--группирует ${{ параметры. testGroup }}

--release-notes "${{parameters.releaseNotes }}"

--debug
[*]задача: CmdLine@2
displayName: 'Распространить APK в Firebase (пилотная версия)'
условие: eq('${{ параметры.firebaseEnv }}', 'Пилотная версия ')
входные данные:
script: |
npx firebase appdistribution:distribute "$(build.artifactStagingDirectory)/app/build/outputs/apk/uatOne{{appName}}Google/release/ app-uat-one{{appName}}-google-release.apk"

--app $(FIREBASE_APP_ID)

--groups ${{parameters.testGroup } }

--release-notes "${{parameters.releaseNotes }}"

--debug








Подробнее здесь: https://stackoverflow.com/questions/790 ... nt-on-azur
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»