Skip to content

Releases: bazelbuild/rules_apple

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.

0.1.0

11 Oct 14:53
Compare
Choose a tag to compare

This release is compatible with Bazel 0.6.1.

Known issues

  • Bitcode builds may fail because of incompatible flags being passed in from Bazel's CROSSTOOL. This will need to be fixed in that project, but in the meantime, it may be possible to workaround by passing --experimental_objc_crosstool=off to switch back to legacy compilation/linking.

0.0.1

29 Mar 22:00
Compare
Choose a tag to compare
0.0.1 Pre-release
Pre-release

Initial release of the new Apple bundling rules for Bazel. Supports building applications and extensions for iOS, tvOS, and watchOS.

This release is not compatible with the Bazel release that was current at the time of this writing (0.4.5). Please build Bazel from source to use these if you do not wish to wait for the next Bazel release.