Repository navigation
Closed
Labels
P3New languages, platforms and features, lastNew languages, platforms and features, lastmodel:sonnetAgent lane: scoped change with stated design, SonnetAgent lane: scoped change with stated design, Sonnetneeds-hostNeeds macOS, Windows, GPU, or signing secrets; not doable on LinuxNeeds macOS, Windows, GPU, or signing secrets; not doable on Linux
Description
A Swift iOS app builds and runs its XCTests on an iOS simulator from rules_dx's own workspace, with no nested Bazel.
Plan (agent): size M, opus
Decision: use an in-repo fixture package built by the outer Bazel on macos_arm64. Register the Xcode C++ toolchain as a dev_dependency. Rejected: keep the nested //apple/tests:macos_swift_consumer_test. It has never passed (run 40614493224), it is slow, and #5291/#5757 remove nested apple tests.
Cause: no in-repo target builds an ios_application on macOS. rules_dx registers no Apple C++ toolchain (MODULE.bazel:490 has only @llvm). Consumers add it themselves (apple/README.md:248).
Change:
MODULE.bazel:490: after@llvm, addapple_cc_configure_extensionfrom@apple_support//crosstool:setup.bzlasdev_dependency = Trueand register@local_config_apple_cc_toolchains//:allas dev. Check with--toolchain_resolution_debugthat macOS targets keep@llvmand iOS simulator targets get the Apple toolchain. If@llvmclaims iOS, register only the iOS toolchain targets from that repo, before@llvm.- New
apple/tests/swift_app/BUILD.bazelwith sources, all macos arm64 only:- a Rust
rust_static_librarywith a C headercc_libraryand aswift_interop_hint - core
swift_libraryand@mainentryswift_libraryfrom//swift/rules:defs.bzl apple_ios_app(entry=..., library=..., platforms=["simulator/arm64"])apple_ios_app_test(deps=[testonly XCTest swift_library])- a device/arm64
apple_ios_appwith a checked-in test.mobileprovision, behind abuild_test
Port the Swift sources fromapple/tests/macos_swift_consumer_test.rs.
- a Rust
- Same package: an
sh_testthat unzips the simulator .ipa and checks CFBundleIdentifier, MinimumOSVersion, DTPlatformName=iphonesimulator,lipo -archsarm64,otool -lplatform 7, and the_ledger_totalsymbol. - Same package:
failure_testnegatives on the*_selectiontargets, macOS only:xcode_version = "9.9"(message "selects Xcode 9.9 but Bazel resolved") and device withoutprovisioning_profile.
Tests: on Linux,tools/dx test //apple/... //swift/...(the new targets skip as incompatible). Then evidence.yml with platforms["macos_arm64"], scope//apple/tests/swift_app/... //apple/ios/..., test_timeout 1800. Attach executor.txt and the XCTest case names with nonzero executed counts.
Host: macos (evidence.yml macos_arm64)
Upstream: none expected.
Metadata
Metadata
Assignees
Labels
P3New languages, platforms and features, lastNew languages, platforms and features, lastmodel:sonnetAgent lane: scoped change with stated design, SonnetAgent lane: scoped change with stated design, Sonnetneeds-hostNeeds macOS, Windows, GPU, or signing secrets; not doable on LinuxNeeds macOS, Windows, GPU, or signing secrets; not doable on Linux
Activity
apple: in-repo Swift iOS simulator app fixture (part of #6597) (#6900)
apple: keep test selection labels off the deps attribute so the rules…
apple: build Swift fixture libraries only through the iOS app, export…
apple: let the Swift fixture libraries build for the iOS simulator pl…
apple: let the Rust fixture library build for the iOS simulator platf…
apple: drop the device app from the simulator fixture, it needs the i…
apple: make the in-repo Swift iOS fixture build on macOS arm64 (part of
apple: read the ipa next to the app executable (part of #6597)
TrapsterDK commentedon Nov 5, 2026
PR #7000: macos_arm64 evidence green. Run 41989737419: ledger_app_test (XCTest on iOS simulator) PASSED; run 41992872663: ledger_ipa_test PASSED. Remaining: device/arm64 app (needs aarch64-apple-ios Rust triple), xcode_version 9.9 negative, support matrix cells.
Assisted by Claude.
rust: register the aarch64-apple-ios toolchain in the root module (pa…
apple: regenerate the device profile with TeamName (part of #6597)
apple: add TimeToLive to the device profile (part of #6597)
apple: drop ledger_ipa_test, the simulator app has no .ipa (part of #…
apple: build and check the device/arm64 ledger app (part of #6597) (#…
docs: regenerate support matrix with Apple Swift iOS cells (closes #6597
docs: regenerate support matrix with Apple Swift iOS cells (closes de…