Azure Pipeline无法构建Kotlin MultipLatform共享框架USINIG EmbedSignAppleFrameWorkforxCode和FastLane

发布于 2025-01-27 16:47:41 字数 1845 浏览 4 评论 0原文

我正在研究一个Kotlin多平台项目,该项目在本地构建良好,但我无法在Azure DevOps管道上工作。

一些好事要知道:

  • 不使用
  • embedandSignAppleFrameWorkforxCode gradlew命令在构建阶段中使用
  • fastlane在本地使用fastlane在构建阶段中使用embedandsignappleframeworkforxcode gradlew命令我们在本地使用fastleaperations
  • 我们使用自定义配置,但是projectAdebug/projectareales as build offereapeforxcode gradlew命令,但是我们定义了kotlin_framework_build_type为所有这些都

我试图使用fastlane来构建和上传以建立和上传到App Store Connect。我们正在使用匹配进行签名,这很棒。归档失败,似乎在构建共享KMM框架方面失败了。

有人有同样的问题可以帮助我吗?或一些技巧,我如何在Azure VM上查看这些Gym日志,因为我认为它说的是实际出了什么问题而不是此一般错误。

▸ 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]: 
              

I'm working on a Kotlin Multiplatform project which is building fine locally but I can't get it to work on an Azure DevOps pipeline.

Some good things to know:

  • not using Cocoapods
  • using the embedAndSignAppleFrameworkForXcode gradlew command in Build Phases
  • all commands using fastlane work for multiple developers locally
  • we use custom configurations like: ProjectADebug/ProjectARelease but we defined KOTLIN_FRAMEWORK_BUILD_TYPE for all of them

I'm trying to get an Azure DevOps pipeline to build and upload to App Store Connect using fastlane. We are using match for signing, that works great. Archiving fails and it looks like it's failing on building the shared KMM framework.

Anybody with the same problems that could help me out? Or some tips how I can view those gym logs on the Azure VM because I assume there it says what actually went wrong instead of this general error.

▸ 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

This is the the lane in 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

And this is my pipeline 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]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙幽之幻 2025-02-03 16:47:41

事实证明,构建公共KMM层存在错误,我可能会在进行干净的结帐时发现它,但是我通过在Azure Devops上使用自托管代理发现了,以便我可以导航到/ users/runner/ligral/logs/gym/project-project.log pylyp dukhov建议。

As it turned out there was an error in building the common KMM layer, I would have found it when doing a clean checkout probably but I found out by using a self-hosted agent on Azure Devops so I could navigate to the /Users/runner/Library/Logs/gym/Project-Project.log as Pylyp Dukhov suggested.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文