-
Notifications
You must be signed in to change notification settings - Fork 29k
Open
flutter/packages
#9766Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work liste: OS-version specificAffects only some versions of the relevant operating systemAffects only some versions of the relevant operating systemfound in release: 3.33Found to occur in 3.33Found to occur in 3.33from: manual-qaIssue caught from manual QA processIssue caught from manual QA processhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onp: url_launcherPlugin to launch external applicationsPlugin to launch external applicationspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.platform-iosiOS applications specificallyiOS applications specificallyteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team
Description
Steps to reproduce
- Install xcode 26 beta
- Clone the packages repo
- Run the setup command in the script/tool directory (cd script/tool && dart pub get)
- Prep the example directory of
url_launcher_ios
(flutter build or flutter pub get in the example directory) - Open
ios/Runner.xcworkspace
in Xcode 26 beta 4 - Run the UrlLauncherUITests on an iOS 18.4 device (emulator/physical)
- Clear the test logs
- Run the UrlLauncherUITests on an iOS 26 device (emulator/physical)
Expected results
The test passes on both iOS 18.4 and iOS 26
Actual results
The tests fail on iOS 26
With the tools for iOS 26 installed in Xcode (Simulator support etc), I tested with xcode 16.3 (both on iOS 18.4 and iOS 26) and the results were the same, i.e, the test passes on iOS 18.4 but not on iOS 26.
Code sample
The url_launcher_ios
example app is required for this.
Screenshots or Video
N/A
Logs
iOS 18.4 Test execution logs
-- LLDB integration loaded --
Running tests...
t = nans Interface orientation changed to Portrait
Test Suite 'Selected tests' started at 2025-08-01 09:00:29.584.
Test Suite 'RunnerUITests.xctest' started at 2025-08-01 09:00:29.584.
Test Suite 'URLLauncherUITests' started at 2025-08-01 09:00:29.584.
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' started.
t = 0.02s Start Test at 2025-08-01 09:00:29.603
t = 0.18s Set Up
t = 0.19s Open dev.flutter.plugins.urlLauncher
t = 0.19s Launch dev.flutter.plugins.urlLauncher
t = 3.95s Setting up automation session
t = 4.69s Wait for dev.flutter.plugins.urlLauncher to idle
t = 6.93s Waiting 30.0s for "Launch in app" Button to exist
t = 7.96s Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app" Button`
t = 7.96s Checking existence of `"Launch in app" Button`
t = 8.00s Get number of matches for: Descendants matching type WebView
t = 8.01s Tap "Launch in app" Button
t = 8.01s Wait for dev.flutter.plugins.urlLauncher to idle
t = 8.01s Find the "Launch in app" Button
t = 8.03s Check for interrupting elements affecting "Launch in app" Button
t = 8.05s Synthesize event
t = 8.45s Wait for dev.flutter.plugins.urlLauncher to idle
t = 8.82s Waiting 30.0s for WebView (First Match) to exist
t = 9.89s Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
t = 9.89s Checking existence of `WebView (First Match)`
t = 10.05s Waiting 30.0s for "ForwardButton" Button to exist
t = 11.10s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 11.10s Checking existence of `"ForwardButton" Button`
t = 11.18s Checking existence of `"Share" Button`
t = 11.24s Checking existence of `"OpenInSafariButton" Button`
t = 11.30s Waiting 30.0s for "Done" Button to exist
t = 12.34s Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
t = 12.34s Checking existence of `"Done" Button`
t = 12.44s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
t = 12.44s Wait for dev.flutter.plugins.urlLauncher to idle
t = 12.44s Find the "Done" Button
t = 12.49s Check for interrupting elements affecting "Done" Button
t = 12.54s Synthesize event
t = 12.54s Find the "Done" Button
t = 12.59s Find the "Done" Button
t = 12.66s Find the "Done" Button
t = 13.00s Wait for dev.flutter.plugins.urlLauncher to idle
t = 13.44s Waiting 30.0s for "Launch in app(JavaScript ON)" Button to exist
t = 14.47s Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app(JavaScript ON)" Button`
t = 14.47s Checking existence of `"Launch in app(JavaScript ON)" Button`
t = 14.49s Get number of matches for: Descendants matching type WebView
t = 14.51s Tap "Launch in app(JavaScript ON)" Button
t = 14.51s Wait for dev.flutter.plugins.urlLauncher to idle
t = 14.51s Find the "Launch in app(JavaScript ON)" Button
t = 14.53s Check for interrupting elements affecting "Launch in app(JavaScript ON)" Button
t = 14.55s Synthesize event
t = 14.84s Wait for dev.flutter.plugins.urlLauncher to idle
t = 15.18s Waiting 30.0s for WebView (First Match) to exist
t = 16.21s Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
t = 16.21s Checking existence of `WebView (First Match)`
t = 16.27s Waiting 30.0s for "ForwardButton" Button to exist
t = 17.30s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 17.30s Checking existence of `"ForwardButton" Button`
t = 17.38s Checking existence of `"Share" Button`
t = 17.44s Checking existence of `"OpenInSafariButton" Button`
t = 17.49s Waiting 30.0s for "Done" Button to exist
t = 18.52s Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
t = 18.53s Checking existence of `"Done" Button`
t = 18.60s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
t = 18.60s Wait for dev.flutter.plugins.urlLauncher to idle
t = 18.60s Find the "Done" Button
t = 18.67s Check for interrupting elements affecting "Done" Button
t = 18.71s Synthesize event
t = 18.71s Find the "Done" Button
t = 18.77s Find the "Done" Button
t = 18.85s Find the "Done" Button
t = 19.19s Wait for dev.flutter.plugins.urlLauncher to idle
t = 19.53s Waiting 30.0s for "Launch in app(DOM storage ON)" Button to exist
t = 20.56s Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app(DOM storage ON)" Button`
t = 20.56s Checking existence of `"Launch in app(DOM storage ON)" Button`
t = 20.60s Get number of matches for: Descendants matching type WebView
t = 20.61s Tap "Launch in app(DOM storage ON)" Button
t = 20.61s Wait for dev.flutter.plugins.urlLauncher to idle
t = 20.61s Find the "Launch in app(DOM storage ON)" Button
t = 20.63s Check for interrupting elements affecting "Launch in app(DOM storage ON)" Button
t = 20.65s Synthesize event
t = 20.95s Wait for dev.flutter.plugins.urlLauncher to idle
t = 21.29s Waiting 30.0s for WebView (First Match) to exist
t = 22.33s Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
t = 22.33s Checking existence of `WebView (First Match)`
t = 22.39s Waiting 30.0s for "ForwardButton" Button to exist
t = 23.43s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 23.43s Checking existence of `"ForwardButton" Button`
t = 23.53s Checking existence of `"Share" Button`
t = 23.61s Checking existence of `"OpenInSafariButton" Button`
t = 23.67s Waiting 30.0s for "Done" Button to exist
t = 24.70s Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
t = 24.70s Checking existence of `"Done" Button`
t = 24.77s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
t = 24.77s Wait for dev.flutter.plugins.urlLauncher to idle
t = 24.77s Find the "Done" Button
t = 24.83s Check for interrupting elements affecting "Done" Button
t = 24.88s Synthesize event
t = 24.88s Find the "Done" Button
t = 24.94s Find the "Done" Button
t = 25.00s Find the "Done" Button
t = 25.35s Wait for dev.flutter.plugins.urlLauncher to idle
t = 25.69s Waiting 30.0s for "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button to exist
t = 26.73s Checking `Expect predicate `existsNoRetry == 1` for object "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button`
t = 26.73s Checking existence of `"Launch a universal link in a native app, fallback to Safari.(Youtube)" Button`
t = 26.76s Get number of matches for: Descendants matching type WebView
t = 26.77s Tap "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
t = 26.77s Wait for dev.flutter.plugins.urlLauncher to idle
t = 26.77s Find the "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
t = 26.79s Check for interrupting elements affecting "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
t = 26.81s Synthesize event
t = 27.10s Wait for dev.flutter.plugins.urlLauncher to idle
t = 27.44s Waiting 30.0s for WebView (First Match) to exist
t = 28.47s Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
t = 28.47s Checking existence of `WebView (First Match)`
t = 28.54s Waiting 30.0s for "ForwardButton" Button to exist
t = 29.56s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 29.56s Checking existence of `"ForwardButton" Button`
t = 29.64s Checking existence of `"Share" Button`
t = 29.69s Checking existence of `"OpenInSafariButton" Button`
t = 29.75s Waiting 30.0s for "Done" Button to exist
t = 30.77s Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
t = 30.77s Checking existence of `"Done" Button`
t = 30.84s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
t = 30.84s Wait for dev.flutter.plugins.urlLauncher to idle
t = 30.84s Find the "Done" Button
t = 30.90s Check for interrupting elements affecting "Done" Button
t = 30.95s Synthesize event
t = 30.95s Find the "Done" Button
t = 31.00s Find the "Done" Button
t = 31.07s Find the "Done" Button
t = 31.42s Wait for dev.flutter.plugins.urlLauncher to idle
t = 31.74s Tear Down
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' passed (31.988 seconds).
Test Suite 'URLLauncherUITests' passed at 2025-08-01 09:01:01.591.
Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.007) seconds
Test Suite 'RunnerUITests.xctest' passed at 2025-08-01 09:01:01.593.
Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.009) seconds
Test Suite 'Selected tests' passed at 2025-08-01 09:01:01.594.
Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.011) seconds
iOS 26 Test execution logs
-- LLDB integration loaded --
Running tests...
Update the Info.plist: Launch screens will soon be required.
t = nans Interface orientation changed to Portrait
Test Suite 'Selected tests' started at 2025-08-01 09:02:42.108.
Test Suite 'RunnerUITests.xctest' started at 2025-08-01 09:02:42.110.
Test Suite 'URLLauncherUITests' started at 2025-08-01 09:02:42.110.
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' started.
t = 0.00s Start Test at 2025-08-01 09:02:42.113
t = 0.21s Set Up
t = 0.21s Open dev.flutter.plugins.urlLauncher
t = 0.21s Launch dev.flutter.plugins.urlLauncher
t = 3.17s Setting up automation session
t = 4.42s Wait for dev.flutter.plugins.urlLauncher to idle
t = 7.77s Waiting 30.0s for "Launch in app" Button to exist
t = 8.86s Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app" Button`
t = 8.86s Checking existence of `"Launch in app" Button`
t = 8.98s Get number of matches for: Descendants matching type WebView
t = 9.07s Tap "Launch in app" Button
t = 9.07s Wait for dev.flutter.plugins.urlLauncher to idle
t = 9.08s Find the "Launch in app" Button
t = 9.12s Check for interrupting elements affecting "Launch in app" Button
t = 9.16s Synthesize event
t = 9.61s Wait for dev.flutter.plugins.urlLauncher to idle
t = 10.03s Waiting 30.0s for WebView (First Match) to exist
t = 11.12s Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
t = 11.13s Checking existence of `WebView (First Match)`
t = 12.13s Waiting 30.0s for "ForwardButton" Button to exist
t = 13.14s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 13.17s Checking existence of `"ForwardButton" Button`
t = 13.30s Capturing element debug description
t = 14.21s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 14.21s Checking existence of `"ForwardButton" Button`
t = 14.32s Capturing element debug description
t = 15.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 15.18s Checking existence of `"ForwardButton" Button`
t = 15.32s Capturing element debug description
t = 16.16s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 16.16s Checking existence of `"ForwardButton" Button`
t = 16.24s Capturing element debug description
t = 17.14s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 17.14s Checking existence of `"ForwardButton" Button`
t = 17.58s Capturing element debug description
t = 18.22s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 18.22s Checking existence of `"ForwardButton" Button`
t = 18.56s Capturing element debug description
t = 19.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 19.18s Checking existence of `"ForwardButton" Button`
t = 19.26s Capturing element debug description
t = 20.20s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 20.20s Checking existence of `"ForwardButton" Button`
t = 20.27s Capturing element debug description
t = 21.19s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 21.19s Checking existence of `"ForwardButton" Button`
t = 21.27s Capturing element debug description
t = 22.20s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 22.20s Checking existence of `"ForwardButton" Button`
t = 22.28s Capturing element debug description
t = 23.21s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 23.21s Checking existence of `"ForwardButton" Button`
t = 23.27s Capturing element debug description
t = 24.16s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 24.16s Checking existence of `"ForwardButton" Button`
t = 24.23s Capturing element debug description
t = 25.16s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 25.16s Checking existence of `"ForwardButton" Button`
t = 25.24s Capturing element debug description
t = 26.17s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 26.17s Checking existence of `"ForwardButton" Button`
t = 26.24s Capturing element debug description
t = 27.16s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 27.16s Checking existence of `"ForwardButton" Button`
t = 27.24s Capturing element debug description
t = 28.16s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 28.16s Checking existence of `"ForwardButton" Button`
t = 28.23s Capturing element debug description
t = 29.17s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 29.17s Checking existence of `"ForwardButton" Button`
t = 29.24s Capturing element debug description
t = 30.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 30.18s Checking existence of `"ForwardButton" Button`
t = 30.25s Capturing element debug description
t = 31.17s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 31.17s Checking existence of `"ForwardButton" Button`
t = 31.25s Capturing element debug description
t = 32.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 32.18s Checking existence of `"ForwardButton" Button`
t = 32.25s Capturing element debug description
t = 33.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 33.18s Checking existence of `"ForwardButton" Button`
t = 33.26s Capturing element debug description
t = 34.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 34.18s Checking existence of `"ForwardButton" Button`
t = 34.25s Capturing element debug description
t = 35.20s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 35.20s Checking existence of `"ForwardButton" Button`
t = 35.27s Capturing element debug description
t = 36.21s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 36.21s Checking existence of `"ForwardButton" Button`
t = 36.27s Capturing element debug description
t = 37.21s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 37.21s Checking existence of `"ForwardButton" Button`
t = 37.27s Capturing element debug description
t = 38.15s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 38.15s Checking existence of `"ForwardButton" Button`
t = 38.22s Capturing element debug description
t = 39.17s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 39.26s Checking existence of `"ForwardButton" Button`
t = 39.98s Capturing element debug description
t = 40.18s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 40.18s Checking existence of `"ForwardButton" Button`
t = 40.25s Capturing element debug description
t = 41.17s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 41.18s Checking existence of `"ForwardButton" Button`
t = 41.25s Capturing element debug description
t = 42.14s Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
t = 42.14s Checking existence of `"ForwardButton" Button`
t = 42.22s Capturing element debug description
t = 42.22s Checking existence of `"ForwardButton" Button`
t = 42.27s Collecting debug information to assist test failure triage
t = 42.27s Requesting snapshot of accessibility hierarchy for app with pid 79568
/Users/nexus/dev/packages/packages/url_launcher/url_launcher_ios/example/ios/RunnerUITests/URLLauncherUITests.swift:31: error: -[RunnerUITests.URLLauncherUITests testLaunch] : XCTAssertTrue failed
t = 42.79s Tear Down
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' failed (43.047 seconds).
Test Suite 'URLLauncherUITests' failed at 2025-08-01 09:03:25.160.
Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.050) seconds
Test Suite 'RunnerUITests.xctest' failed at 2025-08-01 09:03:25.162.
Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.052) seconds
Test Suite 'Selected tests' failed at 2025-08-01 09:03:25.163.
Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.055) seconds
Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.33.0-1.0.pre-1103, on macOS 15.5 24F74 darwin-arm64, locale en-GH) [5.0s]
• Flutter version 3.33.0-1.0.pre-1103 on channel master at /Users/nexus/dev/sdks/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 0c43fe476c (8 days ago), 2025-07-24 02:15:14 -0400
• Engine revision 0c43fe476c
• Dart version 3.10.0 (build 3.10.0-25.0.dev)
• DevTools version 2.48.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets
[!] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [5.0s]
• Android SDK at /Users/nexus/Library/Android/sdk
• Emulator version 35.5.10.0 (build_id 13402964) (CL:N/A)
• Platform android-36, build-tools 36.0.0
• ANDROID_HOME = /Users/nexus/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.6+-13368085-b895.109)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 26.0) [2.6s]
• Xcode at /Applications/Xcode-26.0.0-Beta.4.app/Contents/Developer
• Build 17A5285i
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web [8ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Connected device (6 available) [6.2s]
• iPhone 16 Pro Max (mobile) • 00008140-00194CC23A68801C • ios • iOS 26.0 23A5297m
• iPhone 16 Pro (mobile) • 35EB9616-6F92-47CD-B25F-1E2E84FD448A • ios • com.apple.CoreSimulator.SimRuntime.iOS-26-0 (simulator)
• iPad Air 13-inch (M3) (mobile) • 996AEE94-3BCB-44D3-B879-66CB269BF147 • ios • com.apple.CoreSimulator.SimRuntime.iOS-26-0 (simulator)
• iPad Air 13-inch (M3) (mobile) • AD7C643F-0B42-428D-8011-35035EA95B1B • ios • com.apple.CoreSimulator.SimRuntime.iOS-18-4 (simulator)
• macOS (desktop) • macos • darwin-arm64 • macOS 15.5 24F74 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 138.0.7204.184
[✓] Network resources [1,512ms]
• All expected network resources are available.
! Doctor found issues in 1 category.
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work liste: OS-version specificAffects only some versions of the relevant operating systemAffects only some versions of the relevant operating systemfound in release: 3.33Found to occur in 3.33Found to occur in 3.33from: manual-qaIssue caught from manual QA processIssue caught from manual QA processhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onp: url_launcherPlugin to launch external applicationsPlugin to launch external applicationspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.platform-iosiOS applications specificallyiOS applications specificallyteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team