You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipelines中Xcode@5构建Flutter iOS应用时报错求助

Xcode@5任务构建Flutter iOS应用时出现TypeError: Cannot read properties of undefined (reading 'trim')错误的解决方法

我在为团队的Flutter应用搭建CI/CD流程时,使用Azure DevOps的Xcode@5任务构建iOS版本,遇到了以下错误:

Starting: Xcode Build

==============================================================================

Task         : Xcode

Description  : Build, test, or archive an Xcode workspace on macOS. Optionally package an app.

Version      : 5.248.1

Author       : Microsoft Corporation

Help         : 

==============================================================================

##[error]TypeError: Cannot read properties of undefined (reading 'trim')

Finishing: Xcode Build

涉事的Xcode任务配置如下:

- task: Xcode@5
            displayName: "Xcode Build"
            inputs:
              actions: 'clean archive'
              packageApp: true
              signingOption: 'manual'
              signingIdentity: $(APPLE_CERTIFICATE_SIGNING_IDENTITY)
              provisioningProfileUuid: $(APPLE_PROV_PROFILE_UUID)
              teamId: $(APPLE_TEAM_ID)
              sdk: 'iphoneos'
              scheme: 'Runner'
              destinationPlatformOption: 'iOS'
              destinationTypeOption: 'devices'
              configuration: 'Release'
              xcWorkspacePath: 'ios/Runner.xcworkspace'
              exportMethod: 'app-store'
              exportTeamId: $(APPLE_TEAM_ID)
              archivePath: 'ios/archive/Runner.xcarchive'
              exportPath: 'output/iphoneos/Release'
              xcodeVersion: 'specifyPath'
              xcodeDeveloperDir: '/Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer'
              args: '-verbose'
            continueOnError: false

可能的解决方案

  • 检查管道变量有效性:确认$(APPLE_CERTIFICATE_SIGNING_IDENTITY)、$(APPLE_PROV_PROFILE_UUID)、$(APPLE_TEAM_ID)、$(XCODE_VERSION)这些变量已在管道中正确定义且不为空。若变量未设置,任务处理时会拿到undefined,调用trim()方法就会触发错误。可在任务前添加打印步骤验证:

    - script: |
        echo "APPLE_CERTIFICATE_SIGNING_IDENTITY: $(APPLE_CERTIFICATE_SIGNING_IDENTITY)"
        echo "APPLE_PROV_PROFILE_UUID: $(APPLE_PROV_PROFILE_UUID)"
        echo "APPLE_TEAM_ID: $(APPLE_TEAM_ID)"
        echo "XCODE_VERSION: $(XCODE_VERSION)"
      displayName: "Print Pipeline Variables"
    
  • 移除冗余的Destination参数:archive操作不需要指定目标设备,配置中的destinationPlatformOption和destinationTypeOption属于无效参数,可能导致任务内部逻辑出错。直接删除这两行配置:

    # destinationPlatformOption: 'iOS'
    # destinationTypeOption: 'devices'
    
  • 验证Xcode路径正确性:确保xcodeDeveloperDir中的$(XCODE_VERSION)与实际安装的Xcode版本匹配,比如安装的是Xcode 15.0,变量需设置为15.0,保证路径/Applications/Xcode_15.0.app/Contents/Developer真实存在。可添加步骤检查:

    - script: |
        ls -la /Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer
      displayName: "Check Xcode Path"
    
  • 调整Xcode任务版本:当前使用的Xcode@5版本为5.248.1,可能存在已知bug。尝试降级到5.247.x版本或升级到最新可用版本,排查是否为版本问题导致的错误。

  • 简化任务参数:暂时移除args: '-verbose',verbose参数可能输出过多信息干扰任务逻辑,先使用默认配置完成构建,确认问题解决后再逐步添加调试参数。

内容的提问来源于stack exchange,提问作者Diego Pestana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:03:21