Create and run unit tests, performance tests, and UI tests for your Xcode project using XCTest.

Posts under XCTest tag

60 Posts

Post

Replies

Boosts

Views

Activity

Drag on a Canvas with XCUICoordinate.press(...)
I am trying to create a test case in XCTest using the UI Test target. I have a use case where I use a SwiftUI Canvas to draw a network graph; and the user can drag the graph on the Canvas. After the drag, the user may click on a node. The application presents a popup with the information about the network node clicked. SwiftUI provides the information required for the application to translate the location of the tap into the original location prior to the drag; and so the logic behind the popup can determine which node the network graph was tapped by the user. It appears that the distance of the drag operation performed does not match distance that the image actually moved. The drag distance is always larger than the actual distance dragged. I can observe this during the test execution. The arrow starts at the correct spot but then goes further than the object being dragged. I also observe this when I am driving the application. Is there some standard and supported way to determine the distance that the image on the screen was moved given a specific distance of the "thenDragTo:" coordinate?
2
0
54
3d
Xcode 26.4: xcodebuild test crashes on iOS 15.2 Simulators before XCTest bootstrap due to ResultDataPublisher missing Foundation.URLRequest.httpMethod symbol
I’m seeing a crash when running XCTest on iOS 15.2 Simulators with Xcode 26.4. The test bundle never starts. xctest crashes before establishing the XCTest connection. This appears to be a regression from Xcode 26.2. The same test flow worked with Xcode 26.2, but crashes with Xcode 26.4. This does not appear to be caused by my app or package code. I can reproduce it with a minimal Swift Package that only imports Foundation and has one XCTest case using URLRequest.httpMethod. Environment: Xcode with failure: 26.4 Xcode that worked: 26.2 macOS: 26.2 Destinations tested: iPhone SE (2nd generation), iOS 15.2 Simulator iPad mini (6th generation), iOS 15.2 Simulator Test command: xcodebuild test Swift Package deployment target: iOS 15.2 Swift tools version: 6.1 Minimal reproduction package: Package.swift // swift-tools-version:6.1 import PackageDescription let package = Package( name: "FoundationOnlyRepro", platforms: [.iOS("15.2")], products: [ .library( name: "FoundationOnlyRepro", targets: ["FoundationOnlyRepro"] ) ], targets: [ .target(name: "FoundationOnlyRepro"), .testTarget( name: "FoundationOnlyReproTests", dependencies: ["FoundationOnlyRepro"] ) ], swiftLanguageModes: [.v6] ) Sources/FoundationOnlyRepro/FoundationOnlyRepro.swift import Foundation public struct FoundationOnlyRepro { public init() {} public func makeRequest() -> URLRequest { var request = URLRequest(url: URL(string: "https://example.invalid")!) request.httpMethod = "GET" return request } } Tests/FoundationOnlyReproTests/FoundationOnlyReproTests.swift import XCTest import Foundation @testable import FoundationOnlyRepro final class FoundationOnlyReproTests: XCTestCase { func testURLRequestHTTPMethod() { let request = FoundationOnlyRepro().makeRequest() XCTAssertEqual(request.httpMethod, "GET") } } Command used: xcodebuild test \ -scheme FoundationOnlyRepro \ -destination 'platform=iOS Simulator,name=iPhone SE (2nd generation),OS=15.2' \ -derivedDataPath /tmp/rdp-dd \ -quiet The same kind of crash also occurs when using an iPad mini (6th generation) iOS 15.2 Simulator destination. Result: Testing failed: xctest (...) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying Error: Test crashed with signal abrt before establishing connection.)) ** TEST FAILED ** The diagnostic stderr shows: dyld[28688]: Symbol not found: _$s10Foundation10URLRequestV10httpMethodSSSgvs Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/ResultDataPublisher.framework/ ResultDataPublisher Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Foundation.framework/Foundation Demangling the missing symbol: xcrun swift-demangle '_$s10Foundation10URLRequestV10httpMethodSSSgvs' Output: Foundation.URLRequest.httpMethod.setter : Swift.String? I also checked the iOS 15.2 simulator runtime. The symbol appears to exist in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.2.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/libswiftFoundation.dylib but ResultDataPublisher.framework appears to be resolving it from: .../System/Library/Frameworks/Foundation.framework/Foundation This suggests the crash is in Xcode’s XCTest/result publishing infrastructure, not in the app/test bundle. Questions: Is Xcode 26.4 + iOS 15.2 Simulator + xcodebuild test expected to be supported? Is there a supported workaround to disable or avoid ResultDataPublisher.framework for command-line XCTest runs?
1
0
119
1w
XCTest Bundle cannot access local network.
We’re having an iPad issue accessing the local network with iPadOS 26.3. We have an automation system that tests our app on an iPad using accessibility tags. the XCTest test code sends messages from the iPad via TCP/IP to setup external test equipment. The messages abruptly stopped transmitting across the iPad blood-brain barrier with iPadOS 26.3 (26.2.1 and earlier works fine). The technique that worked involved installing a helper app with the same bundleID as our app, allowing the helper app to access the network, and when our app runs it has network access through the helper. It’s clever and kludgey. Forums that we referenced in the past: https://aninterestingwebsite.com/forums/thread/663858 TN3179: Understanding local network privacy | Apple Developer Documentation I suspect that something was changed in 26.3 that closed our window. I need two things: ID what is different in 26.3 and fix the automation system. If there’s a new way for XCUITest code to access the local network I’m happy to try it out.
9
0
220
1w
XCUITesting Photo Library on macOS
Using XCUITesting to access images using photos picker. The code is roughly like this: photoPickerButton.click() try await Task.sleep(for: .seconds(2)) let images = app.descendants(matching: .image) .matching(identifier: "PXGGridLayout-Info") // select the first 5 images for ix in 0..<5 { let image = images.element(boundBy: ix) if image.exists { image.click() } } // why do I have to click this twice? Output says the second // click does "Falling back to element center point". app.buttons["Add"].firstMatch.click() app.buttons["Add"].firstMatch.click() Other than the minor annoyance of having to click the Add button twice that works fine. The issue is the second time in the same test I run almost identical code, but only try to select the first image as a test for handling duplicate selections. Doesn't work. The first image returned from the query exists, but is not hittable. This is a testing issue as running the steps manually work fine. The element I want to click is this: Attributes: Image, 0x73511d540, {{1794.0, 745.2}, {98.0, 73.5}}, identifier: 'PXGGridLayout-Info', label: 'February 02, 1:00 PM' Any ideas?
0
0
173
4w
UI Testing for iPadOS 26 Menu Bar items
I need to validate whether specific menu items are correctly enabled/disabled. The XCUIAutomation elements for my menu items do not appear in the tree shown by displaying the XCUIApplication object in the debugger when building and testing the iPadOS version of my application. When running the application in an iPad simulator, I can make the menu bar appear by swiping down. The testing works as expected for the MacOS build and test. I did try to use the recording feature, but was not successful in creating a series of commands that worked for a test run.
0
0
257
Mar ’26
Xcode 26.3 incompatible with FireBase and WeTest?
Popular automated testing systems like FireBase [1] and WeTest [2] expect the uploaded test to include the Debug-iphoneos directory generated by Xcode. However, in all of our builds on Xcode 26.3, this folder is created but remains empty. There are some other folders with the same name in subdirectories, but these only contain intermediate build files. Now we're looking for configuration or settings in Xcode to restore the original behavior, where the top-level Debug-iphoneos directory gets populated with a complete image of the test target, include the binary and resource files. Any suggestions would be much appreciated! [1] https://firebase.google.com/docs/test-lab/ios/run-xctest [2] https://www.wetest.net/documents/detail/automation/d8yaA7yz
0
0
69
Mar ’26
XCode 26 - xcodebuild command hangs on XCFail
On XCode 26.x, calling XCFail with continueAfterFailure set to false causes xcodebuild command to hang indefinitely if the XCUIApplication object is stored outside the test method. Create a new template iOS App project with UI tests Add XCFail(...) to a UI test test-case Set the XCUIApplication in self.app (avoiding this fixes the hang) Run tests with xcodebuild test The terminal hangs forever Reproduction example import XCTest final class TestAppUITests: XCTestCase { var app: XCUIApplication? = nil override func setUpWithError() throws { continueAfterFailure = false } override func tearDownWithError() throws { app?.terminate() } @MainActor func testExample() throws { let app = XCUIApplication() self.app = app // <- HERE this causes the problem app.launch() XCTFail() } } Reproduction environment macOS Sequoia 15.7.3 Tested XCode 26.3 and XCode 26.2 have the hang Tested XCode 16.4 does work as expected XCode 16.4 The issue does not happen on XCode 16.4, and is likely introduced in XCode 26. Related threads: https://aninterestingwebsite.com/forums/thread/809989 https://aninterestingwebsite.com/forums/thread/793307 Work-around Do not store XCUIApplication in the XCTestCase instance, maintain it scoped to the test methods.
3
0
150
Mar ’26
Xcode Cloud UI test runs often fail due to "The test runner failed to initialize for UI testing. (Underlying Error: Timed out waiting for AX loaded notification)"
I've yet to encounter these errors when running UI tests locally, but I'd estimate that 80-90% of my test runs on Xcode Cloud fail due to it. I'm just testing with iPhone simulators, I've set it to retry on failure, but no luck. Is there a setting or something I can tweak in my test code to improve the situation? I am on the latest xcode/iOS dev betas - but it was doing this before I switched to them from.
0
1
211
Mar ’26
Not precise scroll in XCTest
I'm working on UI automation tests using XCUITest for an iOS application (iPhone). My goal is to programmatically scroll a view by a very precise number of pixels (e.g., exactly 500 points down). I understand the scroll(byDeltaX:deltaY:) method is not supported on iPhone, so I'm using the coordinate-based drag method as an alternative. Specifically, I am using XCUICoordinate.press(forDuration:thenDragTo:withVelocity:thenHoldForDuration:) to simulate a drag gesture. I calculate a start and end coordinate with a specific vertical offset in points, expecting the view to scroll by that exact amount. However, I'm observing that the resulting scroll offset is not perfectly accurate. There's a consistent error of several pixels, making the scroll amount unpredictable for precise test assertions. Is there a known limitation to the accuracy of coordinate-based dragging for simulating programmatic scrolling? Are there any alternative methods or best practices within XCUITest to achieve a more reliable and pixel-accurate scroll on iPhone, or is this level of precision simply not achievable with the current framework?
1
0
146
Mar ’26
XCUIElementTypes used vary between MacOS and iPadOS
I have a UI Test that is trying to drive a stepper. When run as iPad app, the tree has: Button, 0x10ce7f860, {{492.0, 98.5}, {47.0, 32.0}}, identifier: 'GraphDataViewNumBinsStepper-Decrement', label: 'Number of bins: 4, Decrement' Button, 0x10ce802a0, {{539.0, 98.5}, {47.0, 32.0}}, identifier: 'GraphDataViewNumBinsStepper-Increment', label: 'Number of bins: 4, Increment' When run a Mac app, the tree has: StaticText, 0x7fcf5380d670, {{1575.2, 530.0}, {109.0, 16.0}}, identifier: 'GraphDataViewNumBinsStepperText', value: Number of bins: 4 Stepper, 0x7fcf5380d7b0, {{1691.5, 527.0}, {15.0, 22.0}}, identifier: 'GraphDataViewNumBinsStepper', value: 0 IncrementArrow, 0x7fcf5380e420, {{1692.5, 528.0}, {13.0, 10.0}}, Disabled DecrementArrow, 0x7fcf5380e560, {{1692.5, 538.0}, {13.0, 10.0}}, Disabled Is this an expected situation or might I be building for an inappropriate version of MacOS or iPadOS?
0
0
108
Feb ’26
Sign In Failed on Apple
When testing the same warning comes up (sign in failed network error) for the apple and demo sign in I created. The google one works fine. I am confused because when I test in Xcode on multiple devices it works perfect. The tester has got the same error repeatedly? Most recently as a fix have updated the production backend. Does anyone have any insight why the xcode testing works for me but not the tester (I understand they are on a live device- I have even connected my phone and tested on that).
0
0
76
Feb ’26
SwiftUI .toolbar(placement: .keyboard) item not exposed to accessibility on iOS 26.1 (affects VoiceOver + XCUITest)
Description On iOS 26.1, a ToolbarItem placed in .keyboard is no longer exposed to the accessibility hierarchy. As a result: VoiceOver cannot focus or activate the toolbar button XCUITest cannot discover the element, making the UI impossible to test TextEditor() .toolbar { ToolbarItem(placement: .keyboard) { Button("Done") { /* action */ } } } This worked correctly on previous iOS versions. The button appears visually but is missing from both VoiceOver navigation and XCUI accessibility queries. Steps to Reproduce Create a new SwiftUI project. Use a simple text field with a keyboard toolbar button. Run on an iOS 26.1 device or simulator. Focus the text field to show the keyboard. Turn on VoiceOver and attempt to navigate to the toolbar button. Run an XCUITest attempting to locate the button
2
1
214
Feb ’26
Autogenerated UI Test Runner Blocked By Local Network Permission Prompt
I've recently updated one of our CI mac mini's to Sequoia in preparation for the transition to Tahoe later this year. Most things seemed to work just fine, however I see this dialog whenever the UI Tests try to run. This application BoostBrowerUITest-Runner is auto-generated by Xcode to launch your application and then run your UI Tests. We do not have any control over it, which is why this is most surprising. I've checked the codesigning identity with codesign -d -vvvv as well as looked at it's Info.plist and indeed the usage descriptions for everything are present (again, this is autogenerated, so I'm not surprised, but just wanted to confirm the string from the dialog was coming from this app) &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt; &lt;plist version="1.0"&gt; &lt;dict&gt; &lt;key&gt;BuildMachineOSBuild&lt;/key&gt; &lt;string&gt;22A380021&lt;/string&gt; &lt;key&gt;CFBundleAllowMixedLocalizations&lt;/key&gt; &lt;true/&gt; &lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt; &lt;string&gt;en&lt;/string&gt; &lt;key&gt;CFBundleExecutable&lt;/key&gt; &lt;string&gt;BoostBrowserUITests-Runner&lt;/string&gt; &lt;key&gt;CFBundleIdentifier&lt;/key&gt; &lt;string&gt;company.thebrowser.Browser2UITests.xctrunner&lt;/string&gt; &lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt; &lt;string&gt;6.0&lt;/string&gt; &lt;key&gt;CFBundleName&lt;/key&gt; &lt;string&gt;BoostBrowserUITests-Runner&lt;/string&gt; &lt;key&gt;CFBundlePackageType&lt;/key&gt; &lt;string&gt;APPL&lt;/string&gt; &lt;key&gt;CFBundleShortVersionString&lt;/key&gt; &lt;string&gt;1.0&lt;/string&gt; &lt;key&gt;CFBundleSignature&lt;/key&gt; &lt;string&gt;????&lt;/string&gt; &lt;key&gt;CFBundleSupportedPlatforms&lt;/key&gt; &lt;array&gt; &lt;string&gt;MacOSX&lt;/string&gt; &lt;/array&gt; &lt;key&gt;CFBundleVersion&lt;/key&gt; &lt;string&gt;1&lt;/string&gt; &lt;key&gt;DTCompiler&lt;/key&gt; &lt;string&gt;com.apple.compilers.llvm.clang.1_0&lt;/string&gt; &lt;key&gt;DTPlatformBuild&lt;/key&gt; &lt;string&gt;24A324&lt;/string&gt; &lt;key&gt;DTPlatformName&lt;/key&gt; &lt;string&gt;macosx&lt;/string&gt; &lt;key&gt;DTPlatformVersion&lt;/key&gt; &lt;string&gt;15.0&lt;/string&gt; &lt;key&gt;DTSDKBuild&lt;/key&gt; &lt;string&gt;24A324&lt;/string&gt; &lt;key&gt;DTSDKName&lt;/key&gt; &lt;string&gt;macosx15.0.internal&lt;/string&gt; &lt;key&gt;DTXcode&lt;/key&gt; &lt;string&gt;1620&lt;/string&gt; &lt;key&gt;DTXcodeBuild&lt;/key&gt; &lt;string&gt;16C5031c&lt;/string&gt; &lt;key&gt;LSBackgroundOnly&lt;/key&gt; &lt;true/&gt; &lt;key&gt;LSMinimumSystemVersion&lt;/key&gt; &lt;string&gt;13.0&lt;/string&gt; &lt;key&gt;NSAppTransportSecurity&lt;/key&gt; &lt;dict&gt; &lt;key&gt;NSAllowsArbitraryLoads&lt;/key&gt; &lt;true/&gt; &lt;/dict&gt; &lt;key&gt;NSAppleEventsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSBluetoothAlwaysUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSCalendarsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSCameraUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSContactsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDesktopFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDocumentsFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDownloadsFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSFileProviderDomainUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSFileProviderPresenceUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSLocationUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSMicrophoneUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSMotionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSNetworkVolumesUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSPhotoLibraryUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSRemindersUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSRemovableVolumesUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSpeechRecognitionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSystemAdministrationUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSystemExtensionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;OSBundleUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;/dict&gt; &lt;/plist&gt; Additionally, spctl --assess --type execute BoostBrowserUITests-Runner.app return an exit code of 0 so I assume that means it can launch just fine, and applications are allowed to be run from "anywhere" in System Settings. I've found the XCUIProtectedResource.localNetwork value, but it seems to only be accessible on iOS for some reason (FB17829325). I'm trying to figure out why this is happening on this machine so I can either fix our code or fix the machine. I have an Apple script that will allow it, but it's fiddly and I'd prefer to fix this the correct way either with the machine or with fixing our testing code.
10
1
831
Feb ’26
XCTFail immediately aborts the test in Xcode 26 — no retry on failure
Hi, I’m seeing an unexpected change in how XCTFail behaves in UI tests after updating Xcode. I use the following helper method: `func waitForExistance(file: StaticString, line: UInt) -> Self { if !(element.exists || element.waitForExistence(timeout: Configuration.current.predicateTimeout)) { XCTFail("couldn't find element: \(element) after \(Configuration.current.predicateTimeout) seconds", file: file, line: line) return self } else { return self } }` In Xcode 16.4, this worked as expected: – when an element wasn’t found, XCTFail was triggered, but the test continued running, allowing my retry logic to execute. After updating to Xcode 26.1 / 26.2 - the test now immediately aborts after XCTFail, without executing the next retry. The logs show: `t = 113.22s Tear Down t = 113.22s Terminate com.viessmann.care:81789 *** Assertion failure in -[UITests.Tests _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:], XCTestCase+IssueHandling.m:273 Test Case '-[UITests.Tests test_case]' failed (114.323 seconds). Flushing outgoing messages to the IDE with timeout 600.00s Received confirmation that IDE processed remaining outgoing messages` It looks like XCTFail in Xcode 26 is now treated as an unhandled developer exception, which stops the test execution immediately, even when it’s called inside a helper method. This was not the case in earlier versions. My questions: Is this a regression in XCTest? Or an intentional change in how XCTFail behaves in newer Xcode versions? Should failures now be reported differently (e.g., using record(.init(type: .assertionFailure, …))) if I want to continue the test instead of aborting it? I would like to restore the previous behavior where the failure is logged without terminating the entire test, so my retry mechanism can still run. Has anyone else run into this after upgrading? Thanks in advance! If you’d like, I can also add recommended workarounds that actually work with Xcode 16.4 (e.g., replacing XCTFail with a non-terminating issue record).
4
3
615
Feb ’26
XCUItest - Accessing page content when using deeply nested React Navigation navigators on iOS Using
Hello! I've been trying to automate tests using Appium/XCUITests in a React Native APP, but I'm finding many blockers. They are related to the amount of nested elements in the "DOM" in which the XCUItest can not go deeper to get all the elements we need. snapshotMaxDepth -> The XCUITest does not support more than 60 value, otherwise it returns the following error: Got response with status 404: {"value":{"error":"stale element reference","message":"The previously found element "Application 'xyz.xxx.xxx'" is not present in the current view anymore. Make sure the application UI has the expected state. Original error: Error kAXErrorIllegalArgument getting snapshot for element <AXUIElementRef 0x600003aaf750> {pid=95967} {uid=[ID:1 hash:0x0]}","traceback":"(\n\t0 CoreFoundation 0x00007fff20405604 __exceptionPreprocess + 242\n\t1 libobjc.A.dylib 0x00007fff201a4a45 objc_exception_throw + 48\n\t2 WebDriverAgentLib 0x000000010a3caa53 -[XCUIElement(FBUtilities) fb_takeSnapshot] + 723\n\t3 WebDriverAgentLib 0x000000010a3cad07 -[XCUIElement(FBUtilities) fb_snapshotWithAttributes:maxDepth:] + 183\n\t4 WebDriverAgentLib 0x000000010a37baea +[FBXPath writeXmlWithRootElement:indexPath:elementStore:includedAttributes:writer:] + 778\n\t5 WebDriverAgentLib 0x000000010a37b12c +[FBXPath xmlRep... But if I inform less than 60, the XCUITest is not able to get all the elements we need to automate: There are many threads about this, all of them the issue is in the XCUITest: https://github.com/appium/appium/issues/14825 https://discuss.appium.io/t/handling-staleelementreferenceexception/35095/11 https://github.com/appium/appium/issues/18085 https://discuss.appium.io/t/error-in-appium-desktop-refreshing-source-after-adding-snapshotmaxdepth-greater-than-62/34058 https://stackoverflow.com/questions/74235441/appium-cant-reach-elements-in-ios-source-tree-they-are-too-deep-works-fine-in Tested all possible solutions suggested in the threads, but I will have the issue.
15
12
4.7k
Feb ’26
Unable to launch tests in Xcode 26
I am trying to upgrade my app to use Xcode 26 and I cannot get my tests to launch. I am trying to launch tests to the simulator, and I always get this error after 300 second timeout: "encountered an error (The test runner hung before establishing connection.)" There are no other errors getting logged. I can run to the same simulator just fine, and in Xcode 16 the tests launch with no issues. The tests also run fine on an actual iPhone. Thanks in advance.
10
4
755
Feb ’26
Xcode 26: `IDERunDestination: Supported platforms for the buildables in the current scheme is empty` repeatedly logged when running tests from `.xctestrun` file
We are seeing repeated occurrences of the following log line in test runs triggered via .xctestrun files on iOS 26: IDERunDestination: Supported platforms for the buildables in the current scheme is empty. This line is printed n number of times after a test fails, significantly increasing test execution duration (2–3 minutes extra in some cases). The issue does not occur when tests are built and run together from Xcode directly — it’s specific to .xctestrun-based executions using xcodebuild test-without-building. Steps to Reproduce: Use Xcode 26 to build a sample XCTest target (we used a simple UI test project). Locate the generated .xctestrun file under DerivedData/.../Build/Products/.... Run tests using: xcodebuild -xctestrun /path/to/sample.xctestrun \ -destination "id=<device_id>" \ test-without-building Observe the logs during test failure. Observed Behavior: The log line IDERunDestination: Supported platforms for the buildables in the current scheme is empty appears multiple times. The test cleanup and teardown phase takes significantly longer (2–3 minutes). Expected Behavior: The log should appear once or not at all. Test cleanup time should remain consistent. Additional Information: Affects only iOS 26 devices and .xctestrun-based runs. Not reproducible on iOS < 26. Xcode 26 and 26.x beta versions tried. Reproducible both locally and on CI systems using real devices. Same .xctestrun file, when used on older OS versions, does not cause delay.
1
5
432
Jan ’26
QR code scan deeplink not work in XCode test run?
Hi, I'm trying to figure out what is true here - if I am not in the correct forum please direct me :-) A. It is not possible to test a QR code scan that contains a deeplink into my iOS app from an XCoode build test run. In other words, The build must be published to Test Flight for the iOS's QR code scan sub-system to be able to process the deeplink into my app? If I am wrong about this, it sure would help with testing to be able to test directly from the local XCode build test. If so, can someone point me in the direction of what I would need to do for that? Thanks for your input either way!
0
0
135
Jan ’26
xcodebuild does not retry UI tests with xcode 26.2
I have ios UI tests that are build with command xcodebuild -workspace ... -scheme ... -configuration ... -derivedDataPath ... -destination ... -testPlan ... build-for-testing Then I run them with xcodebuild -destination ... -resultBundlePath ... -parallel-testing-worker-count ... -xctestrun ... test-without-building I also have following settings in testplan "maximumTestRepetitions" : 3, "testRepetitionMode" : "retryOnFailure", With xcode 16.4 tests were retried on failure up to 3 times, but migrating to xcode 26.2 seems to change this behavior and tests are no longer retried. Is it expected behaviour and I should manually add params like -test-iterations 3 -retry-tests-on-failure into xcodebuild test-without-building command? Here is xcresult - https://drive.google.com/file/d/1xHgiZnIK_lptDSUf-fCyEnT9zYubZlCf/view?usp=sharing And testrun file -https://drive.google.com/file/d/1aBi2sTjy8zFYtgYn1KA60T8gwD_OnBCF/view?usp=sharing
1
0
243
Jan ’26
Drag on a Canvas with XCUICoordinate.press(...)
I am trying to create a test case in XCTest using the UI Test target. I have a use case where I use a SwiftUI Canvas to draw a network graph; and the user can drag the graph on the Canvas. After the drag, the user may click on a node. The application presents a popup with the information about the network node clicked. SwiftUI provides the information required for the application to translate the location of the tap into the original location prior to the drag; and so the logic behind the popup can determine which node the network graph was tapped by the user. It appears that the distance of the drag operation performed does not match distance that the image actually moved. The drag distance is always larger than the actual distance dragged. I can observe this during the test execution. The arrow starts at the correct spot but then goes further than the object being dragged. I also observe this when I am driving the application. Is there some standard and supported way to determine the distance that the image on the screen was moved given a specific distance of the "thenDragTo:" coordinate?
Replies
2
Boosts
0
Views
54
Activity
3d
Xcode 26.4: xcodebuild test crashes on iOS 15.2 Simulators before XCTest bootstrap due to ResultDataPublisher missing Foundation.URLRequest.httpMethod symbol
I’m seeing a crash when running XCTest on iOS 15.2 Simulators with Xcode 26.4. The test bundle never starts. xctest crashes before establishing the XCTest connection. This appears to be a regression from Xcode 26.2. The same test flow worked with Xcode 26.2, but crashes with Xcode 26.4. This does not appear to be caused by my app or package code. I can reproduce it with a minimal Swift Package that only imports Foundation and has one XCTest case using URLRequest.httpMethod. Environment: Xcode with failure: 26.4 Xcode that worked: 26.2 macOS: 26.2 Destinations tested: iPhone SE (2nd generation), iOS 15.2 Simulator iPad mini (6th generation), iOS 15.2 Simulator Test command: xcodebuild test Swift Package deployment target: iOS 15.2 Swift tools version: 6.1 Minimal reproduction package: Package.swift // swift-tools-version:6.1 import PackageDescription let package = Package( name: "FoundationOnlyRepro", platforms: [.iOS("15.2")], products: [ .library( name: "FoundationOnlyRepro", targets: ["FoundationOnlyRepro"] ) ], targets: [ .target(name: "FoundationOnlyRepro"), .testTarget( name: "FoundationOnlyReproTests", dependencies: ["FoundationOnlyRepro"] ) ], swiftLanguageModes: [.v6] ) Sources/FoundationOnlyRepro/FoundationOnlyRepro.swift import Foundation public struct FoundationOnlyRepro { public init() {} public func makeRequest() -> URLRequest { var request = URLRequest(url: URL(string: "https://example.invalid")!) request.httpMethod = "GET" return request } } Tests/FoundationOnlyReproTests/FoundationOnlyReproTests.swift import XCTest import Foundation @testable import FoundationOnlyRepro final class FoundationOnlyReproTests: XCTestCase { func testURLRequestHTTPMethod() { let request = FoundationOnlyRepro().makeRequest() XCTAssertEqual(request.httpMethod, "GET") } } Command used: xcodebuild test \ -scheme FoundationOnlyRepro \ -destination 'platform=iOS Simulator,name=iPhone SE (2nd generation),OS=15.2' \ -derivedDataPath /tmp/rdp-dd \ -quiet The same kind of crash also occurs when using an iPad mini (6th generation) iOS 15.2 Simulator destination. Result: Testing failed: xctest (...) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying Error: Test crashed with signal abrt before establishing connection.)) ** TEST FAILED ** The diagnostic stderr shows: dyld[28688]: Symbol not found: _$s10Foundation10URLRequestV10httpMethodSSSgvs Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/ResultDataPublisher.framework/ ResultDataPublisher Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Foundation.framework/Foundation Demangling the missing symbol: xcrun swift-demangle '_$s10Foundation10URLRequestV10httpMethodSSSgvs' Output: Foundation.URLRequest.httpMethod.setter : Swift.String? I also checked the iOS 15.2 simulator runtime. The symbol appears to exist in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.2.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/libswiftFoundation.dylib but ResultDataPublisher.framework appears to be resolving it from: .../System/Library/Frameworks/Foundation.framework/Foundation This suggests the crash is in Xcode’s XCTest/result publishing infrastructure, not in the app/test bundle. Questions: Is Xcode 26.4 + iOS 15.2 Simulator + xcodebuild test expected to be supported? Is there a supported workaround to disable or avoid ResultDataPublisher.framework for command-line XCTest runs?
Replies
1
Boosts
0
Views
119
Activity
1w
XCTest Bundle cannot access local network.
We’re having an iPad issue accessing the local network with iPadOS 26.3. We have an automation system that tests our app on an iPad using accessibility tags. the XCTest test code sends messages from the iPad via TCP/IP to setup external test equipment. The messages abruptly stopped transmitting across the iPad blood-brain barrier with iPadOS 26.3 (26.2.1 and earlier works fine). The technique that worked involved installing a helper app with the same bundleID as our app, allowing the helper app to access the network, and when our app runs it has network access through the helper. It’s clever and kludgey. Forums that we referenced in the past: https://aninterestingwebsite.com/forums/thread/663858 TN3179: Understanding local network privacy | Apple Developer Documentation I suspect that something was changed in 26.3 that closed our window. I need two things: ID what is different in 26.3 and fix the automation system. If there’s a new way for XCUITest code to access the local network I’m happy to try it out.
Replies
9
Boosts
0
Views
220
Activity
1w
XCUITesting Photo Library on macOS
Using XCUITesting to access images using photos picker. The code is roughly like this: photoPickerButton.click() try await Task.sleep(for: .seconds(2)) let images = app.descendants(matching: .image) .matching(identifier: "PXGGridLayout-Info") // select the first 5 images for ix in 0..<5 { let image = images.element(boundBy: ix) if image.exists { image.click() } } // why do I have to click this twice? Output says the second // click does "Falling back to element center point". app.buttons["Add"].firstMatch.click() app.buttons["Add"].firstMatch.click() Other than the minor annoyance of having to click the Add button twice that works fine. The issue is the second time in the same test I run almost identical code, but only try to select the first image as a test for handling duplicate selections. Doesn't work. The first image returned from the query exists, but is not hittable. This is a testing issue as running the steps manually work fine. The element I want to click is this: Attributes: Image, 0x73511d540, {{1794.0, 745.2}, {98.0, 73.5}}, identifier: 'PXGGridLayout-Info', label: 'February 02, 1:00 PM' Any ideas?
Replies
0
Boosts
0
Views
173
Activity
4w
UI Testing for iPadOS 26 Menu Bar items
I need to validate whether specific menu items are correctly enabled/disabled. The XCUIAutomation elements for my menu items do not appear in the tree shown by displaying the XCUIApplication object in the debugger when building and testing the iPadOS version of my application. When running the application in an iPad simulator, I can make the menu bar appear by swiping down. The testing works as expected for the MacOS build and test. I did try to use the recording feature, but was not successful in creating a series of commands that worked for a test run.
Replies
0
Boosts
0
Views
257
Activity
Mar ’26
Xcode 26.3 incompatible with FireBase and WeTest?
Popular automated testing systems like FireBase [1] and WeTest [2] expect the uploaded test to include the Debug-iphoneos directory generated by Xcode. However, in all of our builds on Xcode 26.3, this folder is created but remains empty. There are some other folders with the same name in subdirectories, but these only contain intermediate build files. Now we're looking for configuration or settings in Xcode to restore the original behavior, where the top-level Debug-iphoneos directory gets populated with a complete image of the test target, include the binary and resource files. Any suggestions would be much appreciated! [1] https://firebase.google.com/docs/test-lab/ios/run-xctest [2] https://www.wetest.net/documents/detail/automation/d8yaA7yz
Replies
0
Boosts
0
Views
69
Activity
Mar ’26
XCode 26 - xcodebuild command hangs on XCFail
On XCode 26.x, calling XCFail with continueAfterFailure set to false causes xcodebuild command to hang indefinitely if the XCUIApplication object is stored outside the test method. Create a new template iOS App project with UI tests Add XCFail(...) to a UI test test-case Set the XCUIApplication in self.app (avoiding this fixes the hang) Run tests with xcodebuild test The terminal hangs forever Reproduction example import XCTest final class TestAppUITests: XCTestCase { var app: XCUIApplication? = nil override func setUpWithError() throws { continueAfterFailure = false } override func tearDownWithError() throws { app?.terminate() } @MainActor func testExample() throws { let app = XCUIApplication() self.app = app // <- HERE this causes the problem app.launch() XCTFail() } } Reproduction environment macOS Sequoia 15.7.3 Tested XCode 26.3 and XCode 26.2 have the hang Tested XCode 16.4 does work as expected XCode 16.4 The issue does not happen on XCode 16.4, and is likely introduced in XCode 26. Related threads: https://aninterestingwebsite.com/forums/thread/809989 https://aninterestingwebsite.com/forums/thread/793307 Work-around Do not store XCUIApplication in the XCTestCase instance, maintain it scoped to the test methods.
Replies
3
Boosts
0
Views
150
Activity
Mar ’26
Xcode Cloud UI test runs often fail due to "The test runner failed to initialize for UI testing. (Underlying Error: Timed out waiting for AX loaded notification)"
I've yet to encounter these errors when running UI tests locally, but I'd estimate that 80-90% of my test runs on Xcode Cloud fail due to it. I'm just testing with iPhone simulators, I've set it to retry on failure, but no luck. Is there a setting or something I can tweak in my test code to improve the situation? I am on the latest xcode/iOS dev betas - but it was doing this before I switched to them from.
Replies
0
Boosts
1
Views
211
Activity
Mar ’26
Not precise scroll in XCTest
I'm working on UI automation tests using XCUITest for an iOS application (iPhone). My goal is to programmatically scroll a view by a very precise number of pixels (e.g., exactly 500 points down). I understand the scroll(byDeltaX:deltaY:) method is not supported on iPhone, so I'm using the coordinate-based drag method as an alternative. Specifically, I am using XCUICoordinate.press(forDuration:thenDragTo:withVelocity:thenHoldForDuration:) to simulate a drag gesture. I calculate a start and end coordinate with a specific vertical offset in points, expecting the view to scroll by that exact amount. However, I'm observing that the resulting scroll offset is not perfectly accurate. There's a consistent error of several pixels, making the scroll amount unpredictable for precise test assertions. Is there a known limitation to the accuracy of coordinate-based dragging for simulating programmatic scrolling? Are there any alternative methods or best practices within XCUITest to achieve a more reliable and pixel-accurate scroll on iPhone, or is this level of precision simply not achievable with the current framework?
Replies
1
Boosts
0
Views
146
Activity
Mar ’26
XCUIElementTypes used vary between MacOS and iPadOS
I have a UI Test that is trying to drive a stepper. When run as iPad app, the tree has: Button, 0x10ce7f860, {{492.0, 98.5}, {47.0, 32.0}}, identifier: 'GraphDataViewNumBinsStepper-Decrement', label: 'Number of bins: 4, Decrement' Button, 0x10ce802a0, {{539.0, 98.5}, {47.0, 32.0}}, identifier: 'GraphDataViewNumBinsStepper-Increment', label: 'Number of bins: 4, Increment' When run a Mac app, the tree has: StaticText, 0x7fcf5380d670, {{1575.2, 530.0}, {109.0, 16.0}}, identifier: 'GraphDataViewNumBinsStepperText', value: Number of bins: 4 Stepper, 0x7fcf5380d7b0, {{1691.5, 527.0}, {15.0, 22.0}}, identifier: 'GraphDataViewNumBinsStepper', value: 0 IncrementArrow, 0x7fcf5380e420, {{1692.5, 528.0}, {13.0, 10.0}}, Disabled DecrementArrow, 0x7fcf5380e560, {{1692.5, 538.0}, {13.0, 10.0}}, Disabled Is this an expected situation or might I be building for an inappropriate version of MacOS or iPadOS?
Replies
0
Boosts
0
Views
108
Activity
Feb ’26
Sign In Failed on Apple
When testing the same warning comes up (sign in failed network error) for the apple and demo sign in I created. The google one works fine. I am confused because when I test in Xcode on multiple devices it works perfect. The tester has got the same error repeatedly? Most recently as a fix have updated the production backend. Does anyone have any insight why the xcode testing works for me but not the tester (I understand they are on a live device- I have even connected my phone and tested on that).
Replies
0
Boosts
0
Views
76
Activity
Feb ’26
SwiftUI .toolbar(placement: .keyboard) item not exposed to accessibility on iOS 26.1 (affects VoiceOver + XCUITest)
Description On iOS 26.1, a ToolbarItem placed in .keyboard is no longer exposed to the accessibility hierarchy. As a result: VoiceOver cannot focus or activate the toolbar button XCUITest cannot discover the element, making the UI impossible to test TextEditor() .toolbar { ToolbarItem(placement: .keyboard) { Button("Done") { /* action */ } } } This worked correctly on previous iOS versions. The button appears visually but is missing from both VoiceOver navigation and XCUI accessibility queries. Steps to Reproduce Create a new SwiftUI project. Use a simple text field with a keyboard toolbar button. Run on an iOS 26.1 device or simulator. Focus the text field to show the keyboard. Turn on VoiceOver and attempt to navigate to the toolbar button. Run an XCUITest attempting to locate the button
Replies
2
Boosts
1
Views
214
Activity
Feb ’26
Autogenerated UI Test Runner Blocked By Local Network Permission Prompt
I've recently updated one of our CI mac mini's to Sequoia in preparation for the transition to Tahoe later this year. Most things seemed to work just fine, however I see this dialog whenever the UI Tests try to run. This application BoostBrowerUITest-Runner is auto-generated by Xcode to launch your application and then run your UI Tests. We do not have any control over it, which is why this is most surprising. I've checked the codesigning identity with codesign -d -vvvv as well as looked at it's Info.plist and indeed the usage descriptions for everything are present (again, this is autogenerated, so I'm not surprised, but just wanted to confirm the string from the dialog was coming from this app) &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt; &lt;plist version="1.0"&gt; &lt;dict&gt; &lt;key&gt;BuildMachineOSBuild&lt;/key&gt; &lt;string&gt;22A380021&lt;/string&gt; &lt;key&gt;CFBundleAllowMixedLocalizations&lt;/key&gt; &lt;true/&gt; &lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt; &lt;string&gt;en&lt;/string&gt; &lt;key&gt;CFBundleExecutable&lt;/key&gt; &lt;string&gt;BoostBrowserUITests-Runner&lt;/string&gt; &lt;key&gt;CFBundleIdentifier&lt;/key&gt; &lt;string&gt;company.thebrowser.Browser2UITests.xctrunner&lt;/string&gt; &lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt; &lt;string&gt;6.0&lt;/string&gt; &lt;key&gt;CFBundleName&lt;/key&gt; &lt;string&gt;BoostBrowserUITests-Runner&lt;/string&gt; &lt;key&gt;CFBundlePackageType&lt;/key&gt; &lt;string&gt;APPL&lt;/string&gt; &lt;key&gt;CFBundleShortVersionString&lt;/key&gt; &lt;string&gt;1.0&lt;/string&gt; &lt;key&gt;CFBundleSignature&lt;/key&gt; &lt;string&gt;????&lt;/string&gt; &lt;key&gt;CFBundleSupportedPlatforms&lt;/key&gt; &lt;array&gt; &lt;string&gt;MacOSX&lt;/string&gt; &lt;/array&gt; &lt;key&gt;CFBundleVersion&lt;/key&gt; &lt;string&gt;1&lt;/string&gt; &lt;key&gt;DTCompiler&lt;/key&gt; &lt;string&gt;com.apple.compilers.llvm.clang.1_0&lt;/string&gt; &lt;key&gt;DTPlatformBuild&lt;/key&gt; &lt;string&gt;24A324&lt;/string&gt; &lt;key&gt;DTPlatformName&lt;/key&gt; &lt;string&gt;macosx&lt;/string&gt; &lt;key&gt;DTPlatformVersion&lt;/key&gt; &lt;string&gt;15.0&lt;/string&gt; &lt;key&gt;DTSDKBuild&lt;/key&gt; &lt;string&gt;24A324&lt;/string&gt; &lt;key&gt;DTSDKName&lt;/key&gt; &lt;string&gt;macosx15.0.internal&lt;/string&gt; &lt;key&gt;DTXcode&lt;/key&gt; &lt;string&gt;1620&lt;/string&gt; &lt;key&gt;DTXcodeBuild&lt;/key&gt; &lt;string&gt;16C5031c&lt;/string&gt; &lt;key&gt;LSBackgroundOnly&lt;/key&gt; &lt;true/&gt; &lt;key&gt;LSMinimumSystemVersion&lt;/key&gt; &lt;string&gt;13.0&lt;/string&gt; &lt;key&gt;NSAppTransportSecurity&lt;/key&gt; &lt;dict&gt; &lt;key&gt;NSAllowsArbitraryLoads&lt;/key&gt; &lt;true/&gt; &lt;/dict&gt; &lt;key&gt;NSAppleEventsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSBluetoothAlwaysUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSCalendarsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSCameraUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSContactsUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDesktopFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDocumentsFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSDownloadsFolderUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSFileProviderDomainUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSFileProviderPresenceUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSLocationUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSMicrophoneUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSMotionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSNetworkVolumesUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSPhotoLibraryUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSRemindersUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSRemovableVolumesUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSpeechRecognitionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSystemAdministrationUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;NSSystemExtensionUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;key&gt;OSBundleUsageDescription&lt;/key&gt; &lt;string&gt;Access is necessary for automated testing.&lt;/string&gt; &lt;/dict&gt; &lt;/plist&gt; Additionally, spctl --assess --type execute BoostBrowserUITests-Runner.app return an exit code of 0 so I assume that means it can launch just fine, and applications are allowed to be run from "anywhere" in System Settings. I've found the XCUIProtectedResource.localNetwork value, but it seems to only be accessible on iOS for some reason (FB17829325). I'm trying to figure out why this is happening on this machine so I can either fix our code or fix the machine. I have an Apple script that will allow it, but it's fiddly and I'd prefer to fix this the correct way either with the machine or with fixing our testing code.
Replies
10
Boosts
1
Views
831
Activity
Feb ’26
XCTFail immediately aborts the test in Xcode 26 — no retry on failure
Hi, I’m seeing an unexpected change in how XCTFail behaves in UI tests after updating Xcode. I use the following helper method: `func waitForExistance(file: StaticString, line: UInt) -> Self { if !(element.exists || element.waitForExistence(timeout: Configuration.current.predicateTimeout)) { XCTFail("couldn't find element: \(element) after \(Configuration.current.predicateTimeout) seconds", file: file, line: line) return self } else { return self } }` In Xcode 16.4, this worked as expected: – when an element wasn’t found, XCTFail was triggered, but the test continued running, allowing my retry logic to execute. After updating to Xcode 26.1 / 26.2 - the test now immediately aborts after XCTFail, without executing the next retry. The logs show: `t = 113.22s Tear Down t = 113.22s Terminate com.viessmann.care:81789 *** Assertion failure in -[UITests.Tests _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:], XCTestCase+IssueHandling.m:273 Test Case '-[UITests.Tests test_case]' failed (114.323 seconds). Flushing outgoing messages to the IDE with timeout 600.00s Received confirmation that IDE processed remaining outgoing messages` It looks like XCTFail in Xcode 26 is now treated as an unhandled developer exception, which stops the test execution immediately, even when it’s called inside a helper method. This was not the case in earlier versions. My questions: Is this a regression in XCTest? Or an intentional change in how XCTFail behaves in newer Xcode versions? Should failures now be reported differently (e.g., using record(.init(type: .assertionFailure, …))) if I want to continue the test instead of aborting it? I would like to restore the previous behavior where the failure is logged without terminating the entire test, so my retry mechanism can still run. Has anyone else run into this after upgrading? Thanks in advance! If you’d like, I can also add recommended workarounds that actually work with Xcode 16.4 (e.g., replacing XCTFail with a non-terminating issue record).
Replies
4
Boosts
3
Views
615
Activity
Feb ’26
XCUItest - Accessing page content when using deeply nested React Navigation navigators on iOS Using
Hello! I've been trying to automate tests using Appium/XCUITests in a React Native APP, but I'm finding many blockers. They are related to the amount of nested elements in the "DOM" in which the XCUItest can not go deeper to get all the elements we need. snapshotMaxDepth -> The XCUITest does not support more than 60 value, otherwise it returns the following error: Got response with status 404: {"value":{"error":"stale element reference","message":"The previously found element "Application 'xyz.xxx.xxx'" is not present in the current view anymore. Make sure the application UI has the expected state. Original error: Error kAXErrorIllegalArgument getting snapshot for element <AXUIElementRef 0x600003aaf750> {pid=95967} {uid=[ID:1 hash:0x0]}","traceback":"(\n\t0 CoreFoundation 0x00007fff20405604 __exceptionPreprocess + 242\n\t1 libobjc.A.dylib 0x00007fff201a4a45 objc_exception_throw + 48\n\t2 WebDriverAgentLib 0x000000010a3caa53 -[XCUIElement(FBUtilities) fb_takeSnapshot] + 723\n\t3 WebDriverAgentLib 0x000000010a3cad07 -[XCUIElement(FBUtilities) fb_snapshotWithAttributes:maxDepth:] + 183\n\t4 WebDriverAgentLib 0x000000010a37baea +[FBXPath writeXmlWithRootElement:indexPath:elementStore:includedAttributes:writer:] + 778\n\t5 WebDriverAgentLib 0x000000010a37b12c +[FBXPath xmlRep... But if I inform less than 60, the XCUITest is not able to get all the elements we need to automate: There are many threads about this, all of them the issue is in the XCUITest: https://github.com/appium/appium/issues/14825 https://discuss.appium.io/t/handling-staleelementreferenceexception/35095/11 https://github.com/appium/appium/issues/18085 https://discuss.appium.io/t/error-in-appium-desktop-refreshing-source-after-adding-snapshotmaxdepth-greater-than-62/34058 https://stackoverflow.com/questions/74235441/appium-cant-reach-elements-in-ios-source-tree-they-are-too-deep-works-fine-in Tested all possible solutions suggested in the threads, but I will have the issue.
Replies
15
Boosts
12
Views
4.7k
Activity
Feb ’26
UITests recording throws an error when running on an M1 chip
"UITests recording reports 'The capability "Create Service Socket" is not supported by this device.' on M1 chip, but works normally on Intel chip."
Replies
4
Boosts
1
Views
536
Activity
Feb ’26
Unable to launch tests in Xcode 26
I am trying to upgrade my app to use Xcode 26 and I cannot get my tests to launch. I am trying to launch tests to the simulator, and I always get this error after 300 second timeout: "encountered an error (The test runner hung before establishing connection.)" There are no other errors getting logged. I can run to the same simulator just fine, and in Xcode 16 the tests launch with no issues. The tests also run fine on an actual iPhone. Thanks in advance.
Replies
10
Boosts
4
Views
755
Activity
Feb ’26
Xcode 26: `IDERunDestination: Supported platforms for the buildables in the current scheme is empty` repeatedly logged when running tests from `.xctestrun` file
We are seeing repeated occurrences of the following log line in test runs triggered via .xctestrun files on iOS 26: IDERunDestination: Supported platforms for the buildables in the current scheme is empty. This line is printed n number of times after a test fails, significantly increasing test execution duration (2–3 minutes extra in some cases). The issue does not occur when tests are built and run together from Xcode directly — it’s specific to .xctestrun-based executions using xcodebuild test-without-building. Steps to Reproduce: Use Xcode 26 to build a sample XCTest target (we used a simple UI test project). Locate the generated .xctestrun file under DerivedData/.../Build/Products/.... Run tests using: xcodebuild -xctestrun /path/to/sample.xctestrun \ -destination "id=<device_id>" \ test-without-building Observe the logs during test failure. Observed Behavior: The log line IDERunDestination: Supported platforms for the buildables in the current scheme is empty appears multiple times. The test cleanup and teardown phase takes significantly longer (2–3 minutes). Expected Behavior: The log should appear once or not at all. Test cleanup time should remain consistent. Additional Information: Affects only iOS 26 devices and .xctestrun-based runs. Not reproducible on iOS < 26. Xcode 26 and 26.x beta versions tried. Reproducible both locally and on CI systems using real devices. Same .xctestrun file, when used on older OS versions, does not cause delay.
Replies
1
Boosts
5
Views
432
Activity
Jan ’26
QR code scan deeplink not work in XCode test run?
Hi, I'm trying to figure out what is true here - if I am not in the correct forum please direct me :-) A. It is not possible to test a QR code scan that contains a deeplink into my iOS app from an XCoode build test run. In other words, The build must be published to Test Flight for the iOS's QR code scan sub-system to be able to process the deeplink into my app? If I am wrong about this, it sure would help with testing to be able to test directly from the local XCode build test. If so, can someone point me in the direction of what I would need to do for that? Thanks for your input either way!
Replies
0
Boosts
0
Views
135
Activity
Jan ’26
xcodebuild does not retry UI tests with xcode 26.2
I have ios UI tests that are build with command xcodebuild -workspace ... -scheme ... -configuration ... -derivedDataPath ... -destination ... -testPlan ... build-for-testing Then I run them with xcodebuild -destination ... -resultBundlePath ... -parallel-testing-worker-count ... -xctestrun ... test-without-building I also have following settings in testplan "maximumTestRepetitions" : 3, "testRepetitionMode" : "retryOnFailure", With xcode 16.4 tests were retried on failure up to 3 times, but migrating to xcode 26.2 seems to change this behavior and tests are no longer retried. Is it expected behaviour and I should manually add params like -test-iterations 3 -retry-tests-on-failure into xcodebuild test-without-building command? Here is xcresult - https://drive.google.com/file/d/1xHgiZnIK_lptDSUf-fCyEnT9zYubZlCf/view?usp=sharing And testrun file -https://drive.google.com/file/d/1aBi2sTjy8zFYtgYn1KA60T8gwD_OnBCF/view?usp=sharing
Replies
1
Boosts
0
Views
243
Activity
Jan ’26