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

升级Xcode 14.3后Flutter Patrol CLI集成测试编译失败

解决Xcode 14.3升级后Flutter集成测试编译失败问题

问题描述

Xcode升级至14.3版本后,Flutter项目的集成测试编译失败,但App可正常启动。核心报错信息如下:

2023-05-04 10:02:21.858 xcodebuild[42145:1120855] [MT] IDEFileReferenceDebug: [Load] <IDESwiftPackageCore.IDESwiftPackageSpecialFolderFileReference, 0x600002d22700: name:Documentation.docc path:group:Documentation.docc> Failed to load container at path: ***/SourcePackages/checkouts/DefaultsWrapper/Sources/DefaultsWrapper/Documentation.docc, Error: Error Domain=com.apple.dt.IDEContainerErrorDomain Code=6 "Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder"." UserInfo={NSLocalizedDescription=Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder".}   

2023-05-04 10:02:28.556 xcodebuild[42145:1120855] Writing error result bundle to /var/folders/2c/fygq9xv55xxf_15bxz5gpkq89jvsyx/T/ResultBundle_2023-04-05_10-02-0028.xcresult         xcodebuild: error: Failed writing xctestrun file: The folder “Runner_iphonesimulator16.4.xctestrun” doesn’t exist..

环境信息

  • patrol_cli版本:v1.1.7
  • 执行命令:
patrol test \
--target integration_test/app_test.dart \
--dart-define=ENVIRONMENT=dev
  • Flutter Doctor输出:
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.7.12, on macOS 13.1 22C65 darwin-x64, locale de-DE)
    ! Warning: `dart` on your path resolves to /usr/local/Cellar/dart/2.18.4/libexec/bin/dart, which is not inside your current Flutter SDK checkout at
      /Users/***/fvm/versions/stable. Consider adding /Users/***/fvm/versions/stable/bin to the front of your path.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

解决方案

1. 修复Swift Package的DocC冲突

报错核心是Documentation.docc被同时识别为普通文件夹和Swift Package文件夹,处理步骤:

  • 打开ios/Runner.xcworkspace,找到左侧Packages下的DefaultsWrapper
  • 删除其中的Documentation.docc引用后重新添加
  • 或者删除ios/.symlinks、ios/Pods目录,重新执行pod install

2. 升级patrol_cli或Flutter版本

Xcode 14.3与旧版本工具链存在兼容性问题:

  • 升级patrol_cli到最新版:dart pub global activate patrol_cli
  • 升级Flutter到3.10+版本(Flutter 3.7.x对Xcode 14.3支持有限)

3. 修正Dart路径问题

Flutter Doctor提示的路径警告可能导致编译环境不一致:

  • 将Flutter SDK的bin目录设为PATH优先级最高:
    export PATH="/Users/***/fvm/versions/stable/bin:$PATH"
    
  • 重新执行flutter doctor确认警告消失

4. 清理构建缓存

  • 执行flutter clean清理Flutter缓存
  • 在Xcode中执行Cmd+Shift+K清理构建目录
  • 删除~/Library/Developer/Xcode/DerivedData下的所有内容

5. 指定匹配的模拟器版本

若Runner_iphonesimulator16.4.xctestrun不存在,需确保模拟器版本匹配:

  • 打开Xcode确认已安装iOS 16.4模拟器
  • 执行命令时指定具体模拟器:
    patrol test --target integration_test/app_test.dart --dart-define=ENVIRONMENT=dev --device "iPhone 14"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:58:18