Patrol fails to build with Xcode 16.4 and iOS 18.5 - PBXFileSystemSynchronizedRootGroup incompatibility
Steps to reproduce
- Have a Flutter project with Xcode 16.4 installed
- Project must have iOS widget extensions (WidgetKit) which causes Xcode 16 to use the new
PBXFileSystemSynchronizedRootGroupfeature in project.pbxproj - Ensure you're using iOS Simulator (iPhone 15 Pro, iOS 17.5 runtime with iOS 18.5 SDK)
- Run:
patrol test --target integration_test/open_app_scenario_test.dart --flavor QA
Device: iOS Simulator (iPhone 15 Pro) OS Version: iOS 17.5 runtime, Xcode 16.4 with iOS 18.5 SDK
Actual results
Build fails during the xcodebuild phase with an assertion failure:
ASSERTION FAILURE in PBXFileSystemSynchronizedAbstractGroup.m:28
Assertion failed: IDEFileSystemSynchronizedGroupsAreEnabled()
Object: <PBXFileSystemSynchronizedRootGroup>
ProcessException: Process exited abnormally with exit code -6
The issue occurs because:
- Xcode 16 introduced a new "File System Synchronized Groups" feature for widget extensions
- This creates
PBXFileSystemSynchronizedRootGroupentries in project.pbxproj - The xcodebuild tools used by Patrol cannot parse this new format
- Attempting to use Xcode 15.4 also fails because it cannot parse Xcode 16's project format
This effectively blocks Patrol from working with any project that has been opened/modified in Xcode 16+.
Logs
Logs
Can't load Kernel binary: Invalid kernel binary format version.
FINE: Pub 3.9.2
FINE: Package Config up to date.
No device specified, using the first one (iPhone 15 Pro)
• Building app with entrypoint test_bundle.dart for iOS simulator (debug)...
Resolving dependencies...
Got dependencies!
1 package is discontinued.
138 packages have newer versions incompatible with dependency constraints.
Oops; flutter has exited unexpectedly: "ProcessException: Process exited abnormally with exit code -6:
Command line invocation:
/Applications/Xcode_15.4.app/Contents/Developer/usr/bin/xcodebuild -list
User defaults from command line:
IDEPackageSupportUseBuiltinSCM = YES
objc[83674]: Class _TtC12DVTDownloads15CommandLineTool is implemented in both /Applications/Xcode_15.4.app/Contents/SharedFrameworks/DVTDownloads.framework/Versions/A/DVTDownloads (0x104521988) and /Library/Developer/PrivateFrameworks/DVTDownloads.framework/Versions/A/DVTDownloads (0x11634ff48). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed.
2025-11-04 13:38:54.099 xcodebuild[83674:3744773] DVTDeviceOperation: Encountered a build number "" that is incompatible with DVTBuildVersion.
2025-11-04 13:38:54.318 xcodebuild[83674:3744734] [MT] DVTAssertions: ASSERTION FAILURE in DevToolsCore/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/ProjectModel/DataModel/References/SynchronizedGroups/PBXFileSystemSynchronizedAbstractGroup.m:28
Details: Assertion failed: IDEFileSystemSynchronizedGroupsAreEnabled()
Object: <PBXFileSystemSynchronizedRootGroup>
Method: +allocWithZone:
Thread: <_NSMainThread: 0x157e10e80>{number = 1, name = main}
✗ Failed to build app with entrypoint test_bundle.dart for iOS simulator (`flutter build ios` exited with code 1) (22.0s)
Error: `flutter build ios` exited with code 1
Patrol version
patrol: ^3.19.0
Patrol Doctor output
Patrol Doctor output
$ patrol doctor
Patrol CLI version: 2.3.1+1
Program adb found in /Users/arturograu/androidsdk/platform-tools/adb
Env var $ANDROID_HOME set to /Users/arturograu/androidsdk
Program xcodebuild found in /usr/bin/xcodebuild
Program ideviceinstaller found in /opt/homebrew/bin/ideviceinstaller
Flutter Doctor output
Flutter Doctor output
[✓] Flutter (Channel stable, 3.35.4, on macOS 15.6.1 24G90 darwin-arm64, locale en-US)
• Flutter version 3.35.4 on channel stable at /Users/arturograu/Tools/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d693b4b9db (7 weeks ago), 2025-09-16 14:27:41 +0000
• Engine revision c298091351
• Dart version 3.9.2
• DevTools version 2.48.0
[✓] Xcode - develop for iOS and macOS (Xcode 16.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16F6
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2025.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)
[✓] VS Code (version 1.101.2)
• VS Code at /Users/arturograu/Downloads/Visual Studio Code.app/Contents
• Flutter extension version 3.120.0
[✓] Connected device (4 available)
• iPhone de Arturo (wireless) (mobile) • 00008140-001038E20ABA801C • ios • iOS 18.5 22F76
• iPhone 15 Pro (mobile) • C4A4D36D-B5B4-4287-B573-888351D4BFF6 • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator)
• macOS (desktop) • macos • darwin-arm64 • macOS 15.6.1 24G90 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 142.0.7444.60
[✓] Network resources
• All expected network resources are available.
• No issues found!
Hi @arturograu
please try running patrol test with flag --ios=17.5 (adjust value if needed) and let me know if it helped.
Hi @arturograu please try running
patrol testwith flag--ios=17.5(adjust value if needed) and let me know if it helped.
Hello @zoskar thank you for your help but it still didn't work. I tried that previously already.
Based on your patrol doctor output
Patrol CLI version: 2.3.1+1
you're using two years old patrol_cli version, with almost the newest patrol version. Check the compatibility tablet: https://patrol.leancode.co/documentation/compatibility-table you should use patrol_cli 3.9.0 - 3.10.0
Without additional information, we can't resolve this issue. We're therefore reluctantly going to close it. Feel free to open a new issue with all the required information provided, including a [minimal, reproducible sample]. Make sure to diligently fill out the issue template. Thanks for your contribution. [minimal, reproducible sample]: https://stackoverflow.com/help/minimal-reproducible-example