Сбой конвейера Azure при создании многоплатформенной общей платформы Kotlin с использованием embedAndSignAppleFrameworkForXcode и fastlane

Я работаю над многоплатформенным проектом Kotlin, который отлично строится локально, но я не могу заставить его работать в конвейере Azure DevOps.

Некоторые полезные вещи, которые нужно знать:

  • не используя Cocoapods
  • используя команду embedAndSignAppleFrameworkForXcode gradlew на этапах сборки
  • все команды, использующие fastlane, работают для нескольких разработчиков локально
  • мы используем пользовательские конфигурации, такие как: ProjectADebug/ProjectARelease, но мы определили KOTLIN_FRAMEWORK_BUILD_TYPE для всех из них

Я пытаюсь создать конвейер Azure DevOps и загрузить его в App Store Connect с помощью fastlane. Мы используем match для подписи, это отлично работает. Архивация не удалась, и похоже, что она не работает при построении общей инфраструктуры KMM.

Кто-нибудь с такими же проблемами может мне помочь? Или несколько советов, как я могу просмотреть эти gym журналы на виртуальной машине Azure, потому что я предполагаю, что там говорится, что на самом деле пошло не так, а не эта общая ошибка.

▸ Running script 'Build Kotlin Common'
▸ Copying /Users/runner/Library/Developer/Xcode/DerivedData/Project-ffubndppzitzbxhibjgeavrhnzpw/Build/Intermediates.noindex/ArchiveIntermediates/Project/BuildProductsPath/ProjectRelease-iphoneos/Airship_AirshipCore.bundle
▸ Copying /Users/runner/Library/Developer/Xcode/DerivedData/Project-ffubndppzitzbxhibjgeavrhnzpw/Build/Intermediates.noindex/ArchiveIntermediates/Project/BuildProductsPath/Project Release-iphoneos/Airship_AirshipAutomation.bundle
** ARCHIVE FAILED **


The following build commands failed:
    PhaseScriptExecution Build\ Kotlin\ Common /Users/runner/Library/Developer/Xcode/DerivedData/Project-ffubndppzitzbxhibjgeavrhnzpw/Build/Intermediates.noindex/ArchiveIntermediates/Project/IntermediateBuildFilesPath/Project.build/ProjectRelease-iphoneos/Project.build/Script-2F4970EC27CD16A000E32F91.sh (in target 'Project' from project 'Project')
(1 failure)
ERROR [2022-05-10 13:04:32.36]: Exit status: 65

ERROR [2022-05-10 13:04:32.53]: ⬆️  Check out the few lines of raw `xcodebuild` output above for potential hints on how to solve this error
WARN [2022-05-10 13:04:32.53]: ?  For the complete and more detailed error log, check the full log at:
WARN [2022-05-10 13:04:32.53]: ?  /Users/runner/Library/Logs/gym/Project-Project.log

Это полоса в Fastfile:

    lane :azure_beta do |options|

        label = options[:label].capitalize

        git_url = "someURL"

        match(
            type: "appstore",
            readonly: true,
            git_url: git_url,
            keychain_name: ENV["MATCH_KEYCHAIN_NAME"],
            keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"],
            verbose: true
        )
        
        build_app(
            project: "../Project/Project.xcodeproj",
            configuration: "#{label}Release",
            scheme: label
        )
        # fails on the build_app step...
        
        changelog = changelog_from_git_commits(
            pretty: "- (%ae) %s",
            date_format: "short",
            merge_commit_filtering: "exclude_merges"
        )

        upload_to_testflight(
            changelog: changelog,
            app_identifier: label == "Project" ? idsProjectA : idsProjectB,
            skip_waiting_for_build_processing: true
        )

        version_number = get_version_number(
            xcodeproj: "../Project/Project.xcodeproj",
            target: "Project", #Hardcoded because we have multiple targets, label is specificed in build_app configuration
            configuration: "#{label}Release"
        )

        add_git_tag(
            includes_lane: false,
            prefix: "ios-#{label.downcase}-#{version_number}-",
            build_number: number_of_commits
        )

        delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
    end

И это мой пайплайн YAML:

pool:
  vmImage: 'macos-latest'

variables:
- group: fastlane

jobs: 
- job: testflight
  steps:
  - task: Bash@3
    displayName: fastlane update
    inputs:
      targetType: 'inline'
      script: |
        gem update fastlane
        fastlane --version
  - task: JavaToolInstaller@0
    inputs:
      versionSpec: '11'
      jdkArchitectureOption: 'x64'
      jdkSourceOption: 'PreInstalled'
  - task: Bash@3
    displayName: 'Update Dependencies'
    inputs:
      targetType: 'inline'
      script: HOMEBREW_NO_AUTO_UPDATE=1 brew bundle
  - task: Bash@3
    displayName: "Set build properties"
    inputs:
      targetType: 'inline'
      script: |
        echo "sdk.dir=/Users/runner/Library/Android/sdk"
        echo "INCLUDE_MOCKER=false" >> local.properties
        echo "INCLUDE_ANDROID=false" >> local.properties
        echo "INCLUDE_TESTER=false" >> local.properties
        echo "APP_LABEL=$(APP_LABEL)" >> local.properties
    env:
      APP_LABEL: $(APP_LABEL)
  - task: Gradle@2
    displayName: 'Clean label common'
    inputs:
      workingDirectory: ''
      tasks: "common:cleanLabel"
    env:
      APP_LABEL: $(APP_LABEL)
  - task: Bash@3
    displayName: fastlane ios
    env:
      MATCH_PASSWORD: $(MATCH_PASSWORD)
      FASTLANE_PASSWORD: $(FASTLANE_PASSWORD)
      FASTLANE_SESSION: $(FASTLANE_SESSION)
      FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: $(FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD)
    inputs:
      targetType: 'inline'
      script: |
        sudo xcode-select -s /Applications/Xcode_13.2.app
        cd ios/Project
        fastlane azure_beta label:Project app_identifier:project.bundle.id itc_team_id:itc.team.id team_id:team.id git_match_branch:master username:[email protected]

1
40
1

Ответ:

Решено

Как оказалось, при построении общего слоя KMM была ошибка, я бы нашел ее при чистой проверке, вероятно, но я обнаружил это с помощью собственного агента на Azure Devops, чтобы я мог перейти к /Users/runner/Library/Logs/gym/Project-Project.log как Pylyp Dukhov предложенный.