Releases: bazelbuild/rules_apple
0.7.0
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 anxctoolrunner.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 abundle_name
to rename the.framework
bundle.- Adds support for a new resource deduplication logic between
ios_application
andios_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
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_swiftswift_library
in the same dependency tree. You must migrate your entire application in order for it to work correctly.
- You may not, however, mix rules_apple
macos_command_line_application
: Added alaunchdplists
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
- 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
andlaunch_images
attributes to help catchglob()
usage that isn't catching what was intended. - Additional validation improvements and bug fixes (details).
0.4.0
- The
swift_version
attribute onswift_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
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
0.1.0
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
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.