测试 SPM 包时 Fastlane 扫描随机失败 - IDEContainerErrorDomain Code=6

mag*_*zbc 6 ios fastlane swift-package-manager

我有一个由多个 SPM 包组成的项目。我正在使用 Fastlane 对每个包执行测试,如下所示

lane :tests do
  TEST_PACKAGES.each { |package|
    single_test(package: package, devices: TEST_DEVICES)
  }
end

lane :single_test do |options|
  package = options[:package]
  devices = options[:devices]
  scan(
      package_path: package,
      scheme: package,
      devices: devices,
      output_directory: './' + package  + '/' + TEST_OUTPUT_DIR,
      buildlog_path: TEST_BUILDLOG_PATH,
      derived_data_path: DERIVED_DATA_PATH,
      code_coverage: true,
      result_bundle: true,
      fail_build: false,
      clean: true,
      configuration: "Debug"
    )     
end
Run Code Online (Sandbox Code Playgroud)

问题是,这会随机失败 - 有时在第一个包上,有时在第二个包上,有时在其他包上,并出现与此类似的错误:

错误:错误 Domain=com.apple.dt.IDEContainerErrorDomain 代码=6“无法将“swift-custom-dump”作为“Swift 包代理”打开,因为它已作为“Swift 用户管理的包文件夹”打开。”

出现几个类似的错误,涉及特定包使用的依赖项。

这种行为没有一致性,因为简单地fastlane tests再次调用而不进行任何更改,将导致不同包的测试失败。

可能是什么原因?

man*_*man 0

我在 Xcode14 中遇到了这个问题,但这是由于框架资源包代码签名问题造成的。如果您使用的是 CocoaPods,请参考此问题