Skip to content

Releases: bazelbuild/rules_apple

0.11.0

20 Dec 17:32
Compare
Choose a tag to compare
  • This release is tested with Bazel 0.20.0 and 0.21.0.
  • apple_genrule is being removed from rules_apple. Please load it from its new location in apple_support.
  • apple_framework_import has been split into apple_dynamic_framework_import and apple_static_framework_import. (thanks @kastiglione and @keith !)
  • apple_static_framework_import now supports propagation of bundled resources and force linking of the binaries. (thanks @kastiglione and @keith !)
  • Bundled frameworks are no longer signed with entitlements (thanks @jfaust !)
  • swift_library and objc_library can now reference resources through the data attribute. During 2019, we'll start removing support for the resources attributes in swift_library and objc_library, leaving only data as the entry point to reference resources.
  • tvOS and watchOS rules no longer create an intermediate apple_binary target.
  • Additional Associated Domains validation (thanks @dierksen !)
  • ios_ui_test now accepts a provisioning_profile attribute used to run UI tests on devices (thanks @xinzhengzhang !)
  • Various cleanups, bug fixes, tweaks.

Complete list of changes between 0.10.0 and 0.11.0.

0.10.0

07 Dec 21:08
Compare
Choose a tag to compare
  • This release is tested with Bazel 0.20.0.
  • Note: The --define=apple.experimental.bundling flag is now enabled by default. This flag enables a new bundling implementation. If you're using Tulsi, you'll need to regenerate your Tulsi generated Xcode projects.
  • apple_framework_import now accepts deps that propagate other apple_framework_import dependencies.
  • New macos_dylib rule that creates a binary dylib targetting macOS platforms.
  • Swift dylibs will now be stripped of architectures not used in the app's binary.
  • Test rules now accept an env attribute with a dictionary of environment variable names and values to be made available during test execution.
  • A number of cleanups and bug fixes (thanks @keith!).

0.9.0

21 Nov 17:35
Compare
Choose a tag to compare
  • This release is tested with Bazel 0.19.0.
  • Note: The new rules mentioned here are only supported in the new bundling logic that can be enabled with --define=apple.experimental.bundling=1. We will make the new bundling logic the default in the next release.
  • Updates rules_swift to 0.4.0.
  • Updates skylib to 0.5.0.
  • Adds support for Xcode 10 for tests.
  • Adds new rules to replace deprecated Bazel native rules and attributes:
    • apple_bundle_import replaces objc_bundle
    • apple_framework_import replaces objc_framework
    • apple_resource_bundle replaces objc_bundle_library
    • apple_resource_group will replace objc_library resource attributes.
  • Adds new rules that will replace existing support for those features:
    • ios_sticker_pack_extension replaces ios_extension with product_type = apple_product_type.messages_sticker_pack_extension.
    • ios_imessage_extension replaces ios_extension with product_type = apple_product_type.messages_extension.
    • ios_imessage_application replaces ios_application with product_type = apple_product_type.messages_application.
  • Fixes small issues with resource deduplication.
  • A number of compatibility and cleanup fixes for more recent Bazel versions (thanks @keith, @benjaminp and @shoumikhin !)

0.8.0

01 Oct 15:19
Compare
Choose a tag to compare
  • The resource deduplication model changed. When resources are deduplicated from dynamic framework targets, the bundler will now account for uses of the resources outside of the transitive closure of dependencies of the framework.
  • A new bundling logic is now available when building Apple bundles. In order to test it, add --define=apple.experimental.bundling=1 to your build flags. This logic will become the default in the future.
  • Various updates and fixes in testing infrastructure.

0.7.0

15 Aug 16:24
Compare
Choose a tag to compare

NOTE: This release is compatible only with bazel 0.16.1 and above.

  • Wrapper scripts used to invoke tools using xcrun have been refactored into an xctoolrunner.py script.
  • ibtool scripts now filter harmless warning errors to avoid log clutter.
  • tvos_application now directly calls bazel's linking API from Skylark.
  • ios_framework now supports a bundle_name to rename the .framework bundle.
  • Adds support for a new resource deduplication logic between ios_application and ios_framework targets. Can be enabled with --define=apple.experimental.smart_dedupe=1. Will become the default in a future release.
  • General code cleanup.

0.6.0

18 Jun 20:22
Compare
Choose a tag to compare

NOTE: This release changes the way that the rules_apple dependencies should be loaded. Please note the change in the README regarding how to structure your WORKSPACE file.

  • Applications and other bundles can now depend on swift_library targets that use the new bazelbuild/rules_swift rules.
    • You may not, however, mix rules_apple swift_library and rules_swift swift_library in the same dependency tree. You must migrate your entire application in order for it to work correctly.
  • macos_command_line_application: Added a launchdplists attribute that merges a list of .plist files and embeds them into the binary in the __TEXT, __launchd_plist section.
  • Add support for deduplicating resources from the test bundle that are also present in the test host.
  • Only process plist and strings files for builds using --compilation_mode=opt.
  • Fix the -add_ast_path flag passed by Swift to the linker so that .swiftmodule files are actually embedded in the binary.
  • General code cleanup.

0.5.0

02 May 22:25
Compare
Choose a tag to compare
  • The --swift_whole_module_optimization flag was removed from Bazel. Use --swiftcopt=-whole-module-optimization instead for the same effect.
  • swift_library now generates a module map for the header that it generates for Objective-C interop.
  • The bundling rules validate app_icons and launch_images attributes to help catch glob() usage that isn't catching what was intended.
  • Additional validation improvements and bug fixes (details).

0.4.0

28 Mar 15:02
Compare
Choose a tag to compare
  • The swift_version attribute on swift_library has been removed. If you need to set the effective Swift version of the compiler, pass the copts directly; e.g., copts = ["-swift-version", "4"].
  • Bundles should now be able to reference resources and structured resources in a different repository than the one in which the bundle target lives.
  • The bundling rules now preserve the executable bit of any files being bundled as resources, if the bit is set on the original file on the file system.
  • Some of the global --define flags used to control build behavior have been updated.

There have also been some changes related to how module maps are used when Swift targets depend on Objective-C targets. Currently, Swift libraries are allowed to import Objective-C libraries that they indirectly depend on. This will change in a future version of Bazel to only allow importing direct Objective-C dependencies. If you rely on this behavior, please update your BUILD targets now, and use the --incompatible_strict_objc_module_maps flag to verify your build afterwards.

0.3.0

26 Feb 18:16
Compare
Choose a tag to compare

This release of rules_apple is compatible with Bazel 0.11.0.

  • Migration of rule implementation details to Skylib. Please note the instructions in Quick Setup to add the Skylib dependency to your workspace.
  • Testing improvements.
  • Entitlements/signing validation improvements.

0.2.0

22 Nov 18:02
Compare
Choose a tag to compare

This release mostly adds increased validation for bundle contents, such as Info.plist substitutions.