Releases: bazelbuild/rules_apple
0.11.0
- This release is tested with Bazel 0.20.0 and 0.21.0.
apple_genrule
is being removed fromrules_apple
. Please load it from its new location inapple_support
.apple_framework_import
has been split intoapple_dynamic_framework_import
andapple_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
andobjc_library
can now reference resources through thedata
attribute. During 2019, we'll start removing support for the resources attributes inswift_library
andobjc_library
, leaving onlydata
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 aprovisioning_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
- 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 acceptsdeps
that propagate otherapple_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
- 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
to0.4.0
. - Updates
skylib
to0.5.0
. - Adds support for Xcode 10 for tests.
- Adds new rules to replace deprecated Bazel native rules and attributes:
apple_bundle_import
replacesobjc_bundle
apple_framework_import
replacesobjc_framework
apple_resource_bundle
replacesobjc_bundle_library
apple_resource_group
will replaceobjc_library
resource attributes.
- Adds new rules that will replace existing support for those features:
ios_sticker_pack_extension
replacesios_extension
withproduct_type = apple_product_type.messages_sticker_pack_extension
.ios_imessage_extension
replacesios_extension
withproduct_type = apple_product_type.messages_extension
.ios_imessage_application
replacesios_application
withproduct_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
- 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
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.