Skip to content

3.0.0-rc2

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 07 Sep 19:51
· 206 commits to master since this release
22d5dd8

What's Changed

  • Add initial support for Apple .doccarchive through a new docc_archive rule, thanks @luispadron! See the docs for an example
  • Add initial beta visionOS support. There may be breaking changes as Xcode changes before the initial release
  • Fix issue where iOS CPUs defaulted to x86_64 instead of the current host arch
  • Fix case where xcodebuild was always being used for logic tests, thanks @erikkerber!
  • Fix some cases for upcoming --incompatible_enable_cc_toolchain_resolution flip, thanks @comius!
  • Fix ios_xctestrun_runner failing when using parallel testing with a false positive saying no tests ran, thanks @kapoorlakshya!
  • Ignore more variants of noisy codesigning output
  • Assume target environment is device to ease transition to required platforms that aren't defaulting to using the device constraint
  • Silence output from appintentsmetadataprocessor

Below are the changes that were also in previous release candidates.

Potentially breaking changes

  • A platform_mappings file is now required in some cases. If you do not already have one you can copy rules_apple's
  • Test targets now require minimum_os_version (#2124)
  • Adds target name to bundle output paths when bundle_name differs from name. This allows having targets with the same bundle_name in the same BUILD file, thanks @chiragramani!
  • Replaced apple_common.multi_arch_split with new transition, this should not be a breaking change but is required for bazel 7.x support. Please file any issues you find!
  • Removes any support for Xcode prior to 14 from the rules, matching the supported versions from the App Store
  • Imported versioned (macOS) frameworks need to be the correct format (https://developer.apple.com/documentation/bundleresources/placing_content_in_a_bundle), and currently don't support --@build_bazel_rules_apple//apple/build_settings:use_tree_artifacts_outputs/--define=apple.experimental.tree_artifact_outputs=1

Notable additions

  • Add support for app intents through the app_intents attribute
  • Add ExtensionKit support to ios_extension, macos_extension, and tvos_extension rules
  • Add rpaths to apple_xcframework generated binaries
  • Add support for watchOS single target applications, thanks @BalestraPatrick!
  • Adding Support for UI Test Coverage, thanks @gabijarciskeviciute and @mattrobmattrob!

Notable improvements

  • Include private_deps when gathering resources for Apple rules
  • Include Apple Symbols for watchOS extensions, thanks @BalestraPatrick!
  • Document Xcode version selection and invalidation strategy, thanks @BalestraPatrick!
  • Improve exception message catching when running tests, thanks @sebastianv1!
  • Embed frameworks in ios_message_extension, thanks @brentleyjones!

Migrations

  • --@build_bazel_rules_apple//apple/build_settings:use_tree_artifacts_outputs should be used instead of --define=apple.experimental.tree_artifact_outputs=1. Support for the define will be removed in the future.
  • --@build_bazel_rules_apple//apple/build_settings:signing_certificate_name should be used instead of --ios_signing_cert_name

This release is compatible with 6.x LTS and bazel 7.x rolling releases

MODULE.bazel Snippet

bazel_dep(name = "rules_apple", version = "3.0.0-rc2", repo_name = "build_bazel_rules_apple")

Workspace Snippet

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "build_bazel_rules_apple",
    sha256 = "2c6ab2f5903a4487f2cf31ec3f2f3a71244ec159dd94c3fde339ee23193df791",
    url = "https://github.com/bazelbuild/rules_apple/releases/download/3.0.0-rc2/rules_apple.3.0.0-rc2.tar.gz",
)

load(
    "@build_bazel_rules_apple//apple:repositories.bzl",
    "apple_rules_dependencies",
)

apple_rules_dependencies()

load(
    "@build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)

swift_rules_dependencies()

load(
    "@build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()

load(
    "@build_bazel_apple_support//lib:repositories.bzl",
    "apple_support_dependencies",
)

apple_support_dependencies()