Breaking changes
- Removed
WORKSPACEsupport - Removed bazel 7.x support
- Requires rules_swift 4.0.1 or later.
New features
- Add opt-in support for explicit modules, see the docs for usage.
- feat: Add support for ios_kernel_extension() bazel rule by @YungRaj in #2911
- Adopt symbolic macros for public-facing API by @aaronsky in #2933
Other notable changes
- Fix SDK->simruntime mapping assumptions in test runners by @aaronsky in #2889
- remove WORKSPACE support by @aaronsky in #2814
- Fix *_build_test rules with bazel 9.x by @keith in #2890
- Add exports_files for docs by @keith in #2894
- Remove 7.x support by @keith in #2891
- Remove unnecessary exported API by @keith in #2896
- Pass runner PID to simulator create/clean up actions by @brentleyjones in #2899
- Fix rules_apple device runner crash on Rapid Security Response versions by @lelandjansen in #2898
- Update README for 7.x versions by @keith in #2903
- Fix comment about Xdock hack by @keith in #2904
- Revert "Support multiple modules on
app_intentsfor applications (#2879)" by @kntkymt in #2906 - Improve test coverage for metadata output of
AppShortcutsProviderin AppIntent tests by @kntkymt in #2907 - Cherry-pick linking refactor from upstream (batch 1) by @luispadron in #2912
- Bump Swift stdlib presence thresholds for Span compatibility by @jpsim in #2915
- feat: Add support for ios_kernel_extension() bazel rule by @YungRaj in #2911
- Improve performance of test filter creation by @john-flanagan in #2917
- Add
@loader_path/../Frameworksrpath for macOS extensions and ExtensionKit by @adincebic in #2895 - Add Swift deterministic hashing to the environment variables passed to all actions generated by the Apple rules. by @adincebic in #2918
- Support macOS tree-artifact bundling for imported versioned frameworks by @adincebic in #2920
- Add support for launching watchOS apps by @rockbruno in #2875
- Register apple_xplat_toolchain and use exec_groups everywhere by @adincebic in #2854
- Provide default Info.plist for *_application rules by @ssarad in #2919
- Ensure kernel extension rules don't produce entitlements sections if entitlements is None by @YungRaj in #2924
- fix framework imports with private swiftinterface by @adincebic in #2921
- Do not require a provisioning profile when building an iOS kernel extension for a device by @YungRaj in #2926
- Add support for user.bazelrc by @keith in #2930
- Remove old rules_swift API by @keith in #2928
- Manually compile from swiftinterface files by default by @keith in #2927
- Remove armv7k watchOS support by @keith in #2934
- Remove CI workarounds by @keith in #2936
- Add support for importing frameworks with ObjC modules by @keith in #2931
- Convert ios_imessage_test to starlark by @keith in #2948
- Convert tvos_application_swift_test to starlark by @keith in #2946
- Convert smart_resource_deduplication_test to starlark by @keith in #2945
- Convert apple_metal_library_test to starlark by @keith in #2943
- Move apple_core_ml_resource_test to starlark by @keith in #2941
- Convert apple_bundle_version_test to starlark by @keith in #2938
- Convert ios_application_swift_test to starlark by @keith in #2947
- Move apple_core_ml_library_package_test to starlark by @keith in #2939
- Convert docc_archive_test.sh to starlark by @keith in #2944
- Replace ios_extension_tests with starlark tests by @keith in #2937
- Convert apple_intent_library_test to starlark by @keith in #2942
- Fix smart resource dedup test by @keith in #2949
- Fix implicit module building swiftinterfaces by @keith in #2950
- Convert macos_bundle_test to starlark by @keith in #2952
- Remove objc_library archive from runfiles by @keith in #2955
- Convert macos_application_resources_test to starlark by @keith in #2951
- Fix macOS test runner env propagation and add missing features by @kirillyakimovich in #2953
- Use the xcframework's inner name for modules by @keith in #2956
- Adopt symbolic macros for public-facing API by @aaronsky in #2933
- Convert ios_application_test to starlark by @keith in #2963
- Convert tvos_extension_test to starlark by @keith in #2959
- Convert macos_application_test to starlark by @keith in #2962
- Convert macos_quick_look_plugin_test to starlark by @keith in #2960
- Convert watchos_application_test to starlark by @keith in #2965
- Share configs with build and test on CI by @keith in #2968
- Convert tvos_application_test to starlark by @keith in #2964
- Convert ios_application_resources_test to starlark by @keith in #2961
- Add app run modes to Apple application runners by @brentleyjones in #2974
- Convert ios_coverage_test to starlark by @keith in #2967
- Fix removal of signing_certificate_name by @keith in #2970
- Remove the extra coverage file support. by @keith in #2973
- Add ios arm64e archs to watchOS mappings by @keith in #2972
- Remove incompatible_enable_apple_toolchain_resolution by @keith in #2969
- Update the API of
swift_common.compile_module_interface. by @keith in #2929 - Use the newer swift toolchain apis by @keith in #2940
- Fix removal of ios_simulator_device and ios_simulator_version by @keith in #2971
- Correctly handle module.private.modulemap files by @keith in #2977
- Make some coverage tests exclusive by @keith in #2978
- Update buildifier by @keith in #2981
- Only enable swiftinterface compiles for explicit modules by @keith in #2980
- Stop using repo_name and remove bazel_build_ prefix by @adincebic in #2979
- Prevent runfiles env leakage into
ipa_post_processorby @adincebic in #2982 - Fix
runnerattr erroneously inherited by test suite macro by @aaronsky in #2983 - Fix modules being strings by @keith in #2984
- Fix the attr runners of apple test-suite macros by @congt in #2988
- Update to new GA release workflow by @keith in #2990
- Update to rules_swift RC by @keith in #2991
- Update README example some more by @keith in #2993
- Remove _allowlist_function_transition by @keith in #2989
- Fix Swift module synthesis for imported static XCFrameworks without modulemaps by @adincebic in #2992
- Remove pre rules_swift 3.0 API branch by @keith in #2994
- Resolve rules_swift <4.0 TODOs by @keith in #2996
- Add docs to bcr releases by @keith in #2998
- Fix swiftmodule embedding from frameworks by @keith in #2999
- Remove most of AppleTestInfo by @keith in #2987
- Remove apple_common.Objc provider linking by @keith in #1872
- Switch default iOS test runner to xctestrun runner by @keith in #2997
- Handle smartcard certs with no expiry date in codesigningtool by @jpsim in #3000
- Create ready for review PR on BCR by @adincebic in #3003
- Make swift_interop_info_with_dependencies non-optional by @keith in #3004
- Bump rules_swift to latest RC by @keith in #3007
- Handle smartcard certs with no embedded certificate data in codesigningtool by @nac5504 in #3009
- Separate devicectl app args from options by @brentleyjones in #3014
- Convert ios_test_runner_ui_test to starlark by @keith in #2966
- Remove @mattrobmattrob from CODEOWNERS by @mattrobmattrob in #3017
- Add support for newer [Skip|Only]TestingIdentifiers xctestplan format to test runner template by @john-flanagan in #3016
- Remove bazel_features extension_metadata use by @keith in #3018
- Add an app clip example by @manojmahapatra in #3020
- Default to darwin_arm64 when building macOS targets with a minimum_os_version of 27.0 or higher by @adincebic in #3001
- Verify framework signatures before skipping re-sign (#1953) by @vakhidbetrakhmadov in #3023
- fix: minor typos by @manojmahapatra in #3025
- Silence dependency warnings with bazel query by @keith in #3029
- fix(docc_archive): Pass transitive symbol graphs to 'docc' commands by @amorde in #3034
- Add support for app thinning via build settings by @adincebic in #3047
- Add test_environment to ios_xctestrun_runner by @john-flanagan in #3045
- Support DeviceHub.app location in Xcode 27 by @erikkerber in #3013
- Unbundle xctestrunner as a Bazel module by @bc-lee in #3048
- Add screen_capture_format attribute to ios_xctestrun_runner by @erneestoc in #3021
- Contain xcodebuild's derived data in the test's temp dir by @erneestoc in #3050
- Fix generated Info.plist segments in macos_command_line_application by @keith in #3042
- fix macos_test_runner for swift-testing only targets by @aaronsky in #3052
- Allow auto selection of simruntime with patch version by @adincebic in #3049
- Bump rules_swift to latest rc by @keith in #3055
- Fix codesign warning silencing for resource-rules by @gabriellanata in #3056
- Remove legacy _cc_toolchain use by @keith in #3057
New Contributors
- @lelandjansen made their first contribution in #2898
- @YungRaj made their first contribution in #2911
- @john-flanagan made their first contribution in #2917
- @kirillyakimovich made their first contribution in #2953
- @congt made their first contribution in #2988
- @nac5504 made their first contribution in #3009
- @manojmahapatra made their first contribution in #3020
- @bc-lee made their first contribution in #3048
- @erneestoc made their first contribution in #3021
- @gabriellanata made their first contribution in #3056
Full Changelog: 4.5.0...5.0.0
This release is compatible with Bazel 8.x LTS, 9.x LTS, and rolling releases.
MODULE.bazel Snippet
bazel_dep(name = "rules_apple", version = "5.0.0")