Сбой развертывания в Testflight с помощью действий Fastlane и Github

#flutter #continuous-integration #testflight #github-actions #fastlane-match

#сбой #непрерывная интеграция #testflight #github-действия #fastlane-совпадение

Вопрос:

Я следовал этому руководству, чтобы настроить действие Github для автоматизации создания и развертывания приложений iOS с помощью Testflight. Если я использую testlane локально, все работает должным образом, и приложение отправляется в TestFlight. Но в действиях Github сборка завершается успешно, но когда мне нужно загрузить приложение в Appstore Connect, я получаю сообщение об ошибке:

ошибка: не найден профиль для команды ‘XXX’, соответствующий ‘match AppStore com.XXX.XXX’: Xcode не удалось найти профили подготовки, соответствующие ‘XXX / match AppStore com.XXX.XXX’

Я правильно добавил все необходимые секреты, но по какой-то причине fastlane match не может найти мои профили подготовки и мой сертификат подписи. Любая помощь будет принята с благодарностью. Я добавляю свою конфигурацию yaml ниже:

 name: Build Flutter for iOS
# This workflow is triggered on pushes to the repository.
on: [push]
  # workflow_dispatch:

env:
    flutter_version: '1.22.1'
    java_version: '12.x'
    gcloud_version: '290.0.1'

jobs:
  build:
    name: Build 
    runs-on: macos-latest
    steps:
      # ===== APPSTORE SIGNING BUILD====#
      - uses: actions/checkout@v2

      - name: Select Xcode version
        run: sudo xcode-select -s '/Applications/Xcode_11.3.app/Contents/Developer'
      - name: Bundle install
        run: cd ./ios amp;amp; bundle install
      # ==== SETUP FLUTTER
      - name: Setup JDK
        uses: actions/setup-java@v1
        with:
          java-version: ${{ env.java_version }}
      # https://github.com/subosito/flutter-action/issues/16
      - uses: actions/cache@v2
        with:
          path: /opt/hostedtoolcache/flutter
          key: ${{ runner.OS }}-flutter-install-cache-${{ env.flutter_version }}
      - uses: subosito/flutter-action@v1.4.0
        with:
          flutter-version: ${{ env.flutter_version }}
          channel: 'stable'
      - name: Install tools
        run: |
            flutter pub get
            cd ./ios amp;amp; pod install
      - name: Setup SSH Keys and known_hosts for fastlane match
        run: |
            SSH_PATH="$HOME/.ssh"
            mkdir -p "$SSH_PATH"
            touch "$SSH_PATH/known_hosts"
            echo "$PRIVATE_KEY" > "$SSH_PATH/id_rsa"
            chmod 700 "$SSH_PATH"
            ssh-keyscan github.com >> ~/.ssh/known_hosts
            chmod 600 "$SSH_PATH/known_hosts"
            chmod 600 "$SSH_PATH/id_rsa"
            eval $(ssh-agent)
            ssh-add "$SSH_PATH/id_rsa"
        env:
          PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Deploy to TestFlight
        run: |
            cd ./ios amp;amp; bundle exec fastlane beta
        env:
            TEAM_ID: ${{ secrets.TEAM_ID }}
            ITC_TEAM_ID: ${{ secrets.ITC_TEAM_ID }}
            FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
            FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
            FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}
            FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }}
            MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
            MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }}
            MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
 

И это мой файл fastfile:

  platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
    upload_to_testflight
    if is_ci
        create_keychain(
          name: ENV['MATCH_KEYCHAIN_NAME'],
          password: ENV["MATCH_KEYCHAIN_PASSWORD"],
          default_keychain: true,
          unlock: true,
          timeout: 3600,
          lock_when_sleeps: false
        )
    end
    match(
        type: "appstore",
        readonly: is_ci,
        keychain_name: ENV['MATCH_KEYCHAIN_NAME'],
        keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"],
    )
    build_app(
      workspace: "Runner.xcworkspace",
      scheme: "Runner",
      export_method: "development"
    )
    upload_to_testflight
  end
end
 

Комментарии:

1. То же самое здесь. Вы нашли решение?

2. Вы дважды upload_to_testflight вызывали. Первый раз происходит до того, как вы вызвали match и build_app .

Ответ №1:

убедитесь, что если тип: «appstore», то export_method: «app-store»

например:

    match(
        type: "appstore",
        readonly: is_ci,
        keychain_name: ENV['MATCH_KEYCHAIN_NAME'],
        keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"],
    )
    build_app(
      workspace: "Runner.xcworkspace",
      scheme: "Runner",
      export_method: "app-store"
    )