Repository navigation
Use <test bundle id>.xctrunner for the UI test runner on devices - #3093
Merged
Merged
Conversation
rohnnyjoy
marked this pull request as ready for review
October 1, 2026 16:23
rohnnyjoy
requested review from
aaronsky,
adincebic,
brentleyjones,
keith and
luispadron
as code owners
October 1, 2026 16:23
keith
reviewed
Oct 1, 2026
Xcode names a UI test runner <test bundle identifier>.xctrunner. A device refuses the com.apple.test.<name>-Runner name rules_apple used: no app under Apple's own prefix installs unless Apple signed it, the install leaves no data container, and xcodebuild fails with ContainerLookupErrorDomain error 2 before any test runs. The simulator accepts either name, so the runner takes Xcode's on both. A device run acquires no simulator, so it no longer calls the simulator cleanup action after a successful test.
Contributor
Author
|
Done: the runner is |
rohnnyjoy
force-pushed
the
device-xctrunner-bundle-id
branch
from
October 12, 2026 03:00
aaaa338 to
12de0e3
Compare
keith
approved these changes
Oct 26, 2026
keith
enabled auto-merge (squash)
October 26, 2026 21:14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ios_xctestrun_runnernames the UI test runnercom.apple.test.<test bundle name>-Runner. On a real device (iPhone 14 Pro, iOS 26.6.2, Xcode 26.6, wildcard development profile),bazel testof anios_ui_testwith--test_arg=--destination=platform=iOS,id=<udid>fails before any test runs:Xcode names the runner
<test bundle identifier>.xctrunner(wrappedBundleIdentifierin swift-build). This change uses that name when running on a device. The same identifier already flows into the runner's Info.plist, its entitlements and the xctestrun, so nothing else changes. Simulator runs keepcom.apple.test.<name>-Runner.Testing:
bazel test //test:ios_xctestrun_runner_ui_testpasses (15/15) on Xcode 26.6. Locally I had to switch the test'sdevice_typefrom "iPhone Xs" to "iPhone 16", since iOS 26 simulators no longer support the Xs; that change is not in this PR.plutil -extractagainst a built test bundle:my.bundle.idTestsbecomesmy.bundle.idTests.xctrunner.