load("@rules_apple//apple:watchos.doc.bzl", "watchos_application")
watchos_application(name, deps, resources, additional_linker_inputs, app_icons, app_intents,
bundle_id, bundle_id_suffix, bundle_name, codesign_inputs, codesignopts,
entitlements, entitlements_validation, executable_name, exported_symbols_lists,
extension, extensions, families, frameworks, infoplists, ipa_post_processor,
linkopts, locales_to_include, minimum_deployment_os_version, minimum_os_version,
platform_type, provisioning_profile, shared_capabilities, stamp, storyboards,
strings, version)
Builds and bundles a watchOS Application.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | A list of dependent targets that will be linked into this target's binary(s). Any resources, such as asset catalogs, that are referenced by those targets will also be transitively included in the final bundle(s). | List of labels | optional | [] |
| resources | A list of resources or files bundled with the bundle. The resources will be stored in the appropriate resources location within the bundle. | List of labels | optional | [] |
| additional_linker_inputs | A list of input files to be passed to the linker. | List of labels | optional | [] |
| app_icons | Files that comprise the app icons for the application. Each file must have a containing directory named *..xcassets/*..appiconset and there may be only one such ..appiconset directory in the list. In Xcode 26+ for iOS/macOS/watchOS, an *.icon bundle can be provided along with the *..xcassets bundle to support 26 and pre-26 Apple OS rendering. |
List of labels | optional | [] |
| app_intents | List of dependencies implementing the AppIntents protocol. | List of labels | optional | [] |
| bundle_id | The bundle ID (reverse-DNS path followed by app name) for this target. Only use this attribute if the bundle ID is not intended to be composed through an assigned base bundle ID rule found within signed_capabilities. |
String | optional | "" |
| bundle_id_suffix | A string to act as the suffix of the composed bundle ID. If this target's bundle ID is composed from a base bundle ID rule found within signed_capabilities, then this string will be appended to the end of the bundle ID following a "." separator. |
String | optional | "watchkitapp" |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| codesign_inputs | A list of dependencies targets that provide inputs that will be used by codesign (referenced with codesignopts). |
List of labels | optional | [] |
| codesignopts | A list of strings representing extra flags that should be passed to codesign. |
List of strings | optional | [] |
| entitlements | The entitlements file required for device builds of this target. If absent, the default entitlements from the provisioning profile will be used. The following variables are substituted in the entitlements file: $(CFBundleIdentifier) with the bundle ID of the application and $(AppIdentifierPrefix) with the value of the ApplicationIdentifierPrefix key from the target's provisioning profile. |
Label | optional | None |
| entitlements_validation | An entitlements_validation_mode to control the validation of the requested entitlements against the provisioning profile to ensure they are supported. |
String | optional | "loose" |
| executable_name | The desired name of the executable, if the bundle has an executable. If this attribute is not set, then the name of the bundle_name attribute will be used if it is set; if not, then the name of the target will be used instead. |
String | optional | "" |
| exported_symbols_lists | A list of targets containing exported symbols lists files for the linker to control symbol resolution. Each file is expected to have a list of global symbol names that will remain as global symbols in the compiled binary owned by this framework. All other global symbols will be treated as if they were marked as __private_extern__ (aka visibility=hidden) and will not be global in the output file.See the man page documentation for ld(1) on macOS for more details. |
List of labels | optional | [] |
| extension | The watchOS 2 watchos_extension that is required to be bundled within a watchOS 2 application.It is considered an error if the watchOS 2 application extension is assigned to a single target watchOS application, which is constructed if the watchos_application target is assigned deps.This attribute will not support additional types of watchos_extensions in the future.This attribute is deprecated, please use extensions instead. |
Label | optional | None |
| extensions | In case of single-target watchOS app, a list of watchOS application extensions to include in the final watch app bundle. In case of an extension-based watchOS app, a list with a single element, the watchOS 2 watchos_extension that is required to be bundled within a watchOS 2 app. |
List of labels | optional | [] |
| families | A list of device families supported by this rule. At least one must be specified. | List of strings | optional | ["watch"] |
| frameworks | A list of framework targets (see watchos_framework) that this target depends on. |
List of labels | optional | [] |
| infoplists | A list of .plist files that will be merged to form the Info.plist for this target. At least one file must be specified. Please see Info.plist Handling for what is supported. | List of labels | required | |
| ipa_post_processor | A tool that edits this target's archive after it is assembled but before it is signed. The tool is invoked with a single command-line argument that denotes the path to a directory containing the unzipped contents of the archive; this target's bundle will be the directory's only contents. Any changes made by the tool must be made in this directory, and the tool's execution must be hermetic given these inputs to ensure that the result can be safely cached. |
Label | optional | None |
| linkopts | A list of strings representing extra flags that should be passed to the linker. | List of strings | optional | [] |
| locales_to_include | A list of locales to include in the bundle. Only *.lproj directories that are matched will be copied as a part of the build. This value takes precedence (and is preferred) over locales defined using --define "apple.locales_to_include=...". |
List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| provisioning_profile | The provisioning profile (.mobileprovision file) to use when creating the bundle. This value is optional for simulator builds as the simulator doesn't fully enforce entitlements, but is required for device builds. |
Label | optional | None |
| shared_capabilities | A list of shared apple_capability_set rules to represent the capabilities that a code sign aware Apple bundle rule output should have. These can define the formal prefix for the target's bundle_id and can further be merged with information provided by entitlements, if defined by any capabilities found within the apple_capability_set. |
List of labels | optional | [] |
| stamp | Enable link stamping. Whether to encode build information into the binary. Possible values: * stamp = 1: Stamp the build information into the binary. Stamped binaries are only rebuilt when their dependencies change. Use this if there are tests that depend on the build information. * stamp = 0: Always replace build information by constant values. This gives good build result caching. * stamp = -1: Embedding of build information is controlled by the --[no]stamp flag. |
Integer | optional | -1 |
| storyboards | A list of .storyboard files, often localizable. These files are compiled and placed in the root of the final application bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| strings | A list of .strings files, often localizable. These files are converted to binary plists (if they are not already) and placed in the root of the final bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| version | An apple_bundle_version target that represents the version for this target. See apple_bundle_version. |
Label | optional | None |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_build_test")
watchos_build_test(name, minimum_os_version, platform_type, targets)
Test rule to check that the given library targets (Swift, Objective-C, C++) build for watchOS.
Typical usage:
watchos_build_test(
name = "my_build_test",
minimum_os_version = "6.0",
targets = [
"//some/package:my_library",
],
)ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| minimum_os_version | A required string indicating the minimum OS version that will be used as the deployment target when building the targets, represented as a dotted version number (for example, "9.0"). |
String | required | |
| platform_type | - | String | optional | "watchos" |
| targets | The targets to check for successful build. | List of labels | optional | [] |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_dynamic_framework")
watchos_dynamic_framework(name, deps, resources, hdrs, additional_linker_inputs, base_bundle_id,
bundle_id, bundle_id_suffix, bundle_name, bundle_only, codesign_inputs,
codesignopts, executable_name, exported_symbols_lists, extension_safe,
families, frameworks, infoplists, ipa_post_processor, linkopts,
minimum_deployment_os_version, minimum_os_version, platform_type,
provisioning_profile, stamp, strings, version)
Builds and bundles a watchOS dynamic framework that is consumable by Xcode.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | A list of dependent targets that will be linked into this target's binary(s). Any resources, such as asset catalogs, that are referenced by those targets will also be transitively included in the final bundle(s). | List of labels | optional | [] |
| resources | A list of resources or files bundled with the bundle. The resources will be stored in the appropriate resources location within the bundle. | List of labels | optional | [] |
| hdrs | - | List of labels | optional | [] |
| additional_linker_inputs | A list of input files to be passed to the linker. | List of labels | optional | [] |
| base_bundle_id | The base bundle ID rule to dictate the form that a given bundle rule's bundle ID prefix should take. | Label | optional | None |
| bundle_id | The bundle ID (reverse-DNS path followed by app name) for this target. Only use this attribute if the bundle ID is not intended to be composed through an assigned base bundle ID referenced by base_bundle_id. |
String | optional | "" |
| bundle_id_suffix | A string to act as the suffix of the composed bundle ID. If this target's bundle ID is composed from the base bundle ID rule referenced by base_bundle_id, then this string will be appended to the end of the bundle ID following a "." separator. |
String | optional | "bundle_name" |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| bundle_only | Avoid linking the dynamic framework, but still include it in the app. This is useful when you want to manually dlopen the framework at runtime. | Boolean | optional | False |
| codesign_inputs | A list of dependencies targets that provide inputs that will be used by codesign (referenced with codesignopts). |
List of labels | optional | [] |
| codesignopts | A list of strings representing extra flags that should be passed to codesign. |
List of strings | optional | [] |
| executable_name | The desired name of the executable, if the bundle has an executable. If this attribute is not set, then the name of the bundle_name attribute will be used if it is set; if not, then the name of the target will be used instead. |
String | optional | "" |
| exported_symbols_lists | A list of targets containing exported symbols lists files for the linker to control symbol resolution. Each file is expected to have a list of global symbol names that will remain as global symbols in the compiled binary owned by this framework. All other global symbols will be treated as if they were marked as __private_extern__ (aka visibility=hidden) and will not be global in the output file.See the man page documentation for ld(1) on macOS for more details. |
List of labels | optional | [] |
| extension_safe | If true, compiles and links this framework with -application-extension, restricting the binary to use only extension-safe APIs. |
Boolean | optional | False |
| families | A list of device families supported by this rule. At least one must be specified. | List of strings | optional | ["watch"] |
| frameworks | A list of framework targets (see watchos_framework) that this target depends on. |
List of labels | optional | [] |
| infoplists | A list of .plist files that will be merged to form the Info.plist for this target. At least one file must be specified. Please see Info.plist Handling for what is supported. | List of labels | required | |
| ipa_post_processor | A tool that edits this target's archive after it is assembled but before it is signed. The tool is invoked with a single command-line argument that denotes the path to a directory containing the unzipped contents of the archive; this target's bundle will be the directory's only contents. Any changes made by the tool must be made in this directory, and the tool's execution must be hermetic given these inputs to ensure that the result can be safely cached. |
Label | optional | None |
| linkopts | A list of strings representing extra flags that should be passed to the linker. | List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| provisioning_profile | The provisioning profile (.mobileprovision file) to use when creating the bundle. This value is optional for simulator builds as the simulator doesn't fully enforce entitlements, but is required for device builds. |
Label | optional | None |
| stamp | Enable link stamping. Whether to encode build information into the binary. Possible values: * stamp = 1: Stamp the build information into the binary. Stamped binaries are only rebuilt when their dependencies change. Use this if there are tests that depend on the build information. * stamp = 0: Always replace build information by constant values. This gives good build result caching. * stamp = -1: Embedding of build information is controlled by the --[no]stamp flag. |
Integer | optional | -1 |
| strings | A list of .strings files, often localizable. These files are converted to binary plists (if they are not already) and placed in the root of the final bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| version | An apple_bundle_version target that represents the version for this target. See apple_bundle_version. |
Label | optional | None |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_extension")
watchos_extension(name, deps, resources, additional_linker_inputs, app_intents,
application_extension, bundle_id, bundle_id_suffix, bundle_name, codesign_inputs,
codesignopts, entitlements, entitlements_validation, executable_name,
exported_symbols_lists, extensions, families, frameworks, infoplists,
ipa_post_processor, linkopts, locales_to_include, minimum_deployment_os_version,
minimum_os_version, platform_type, provisioning_profile, shared_capabilities, stamp,
strings, version)
Builds and bundles a watchOS Extension.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | A list of dependent targets that will be linked into this target's binary(s). Any resources, such as asset catalogs, that are referenced by those targets will also be transitively included in the final bundle(s). | List of labels | optional | [] |
| resources | A list of resources or files bundled with the bundle. The resources will be stored in the appropriate resources location within the bundle. | List of labels | optional | [] |
| additional_linker_inputs | A list of input files to be passed to the linker. | List of labels | optional | [] |
| app_intents | List of dependencies implementing the AppIntents protocol. | List of labels | optional | [] |
| application_extension | If True, this extension is an App Extension instead of a WatchKit Extension. It links the extension with the application extension point (_NSExtensionMain) instead of the WatchKit extension point (_WKExtensionMain), and has the app_extension product_type instead of watch2_extension. |
Boolean | optional | False |
| bundle_id | The bundle ID (reverse-DNS path followed by app name) for this target. Only use this attribute if the bundle ID is not intended to be composed through an assigned base bundle ID rule found within signed_capabilities. |
String | optional | "" |
| bundle_id_suffix | A string to act as the suffix of the composed bundle ID. If this target's bundle ID is composed from a base bundle ID rule found within signed_capabilities, then this string will be appended to the end of the bundle ID following a "." separator. |
String | optional | "watchkitapp.watchkitextension" |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| codesign_inputs | A list of dependencies targets that provide inputs that will be used by codesign (referenced with codesignopts). |
List of labels | optional | [] |
| codesignopts | A list of strings representing extra flags that should be passed to codesign. |
List of strings | optional | [] |
| entitlements | The entitlements file required for device builds of this target. If absent, the default entitlements from the provisioning profile will be used. The following variables are substituted in the entitlements file: $(CFBundleIdentifier) with the bundle ID of the application and $(AppIdentifierPrefix) with the value of the ApplicationIdentifierPrefix key from the target's provisioning profile. |
Label | optional | None |
| entitlements_validation | An entitlements_validation_mode to control the validation of the requested entitlements against the provisioning profile to ensure they are supported. |
String | optional | "loose" |
| executable_name | The desired name of the executable, if the bundle has an executable. If this attribute is not set, then the name of the bundle_name attribute will be used if it is set; if not, then the name of the target will be used instead. |
String | optional | "" |
| exported_symbols_lists | A list of targets containing exported symbols lists files for the linker to control symbol resolution. Each file is expected to have a list of global symbol names that will remain as global symbols in the compiled binary owned by this framework. All other global symbols will be treated as if they were marked as __private_extern__ (aka visibility=hidden) and will not be global in the output file.See the man page documentation for ld(1) on macOS for more details. |
List of labels | optional | [] |
| extensions | A list of watchOS application extensions to include in the final watch extension bundle. | List of labels | optional | [] |
| families | A list of device families supported by this rule. At least one must be specified. | List of strings | optional | ["watch"] |
| frameworks | A list of framework targets (see watchos_framework) that this target depends on. |
List of labels | optional | [] |
| infoplists | A list of .plist files that will be merged to form the Info.plist for this target. At least one file must be specified. Please see Info.plist Handling for what is supported. | List of labels | required | |
| ipa_post_processor | A tool that edits this target's archive after it is assembled but before it is signed. The tool is invoked with a single command-line argument that denotes the path to a directory containing the unzipped contents of the archive; this target's bundle will be the directory's only contents. Any changes made by the tool must be made in this directory, and the tool's execution must be hermetic given these inputs to ensure that the result can be safely cached. |
Label | optional | None |
| linkopts | A list of strings representing extra flags that should be passed to the linker. | List of strings | optional | [] |
| locales_to_include | A list of locales to include in the bundle. Only *.lproj directories that are matched will be copied as a part of the build. This value takes precedence (and is preferred) over locales defined using --define "apple.locales_to_include=...". |
List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| provisioning_profile | The provisioning profile (.mobileprovision file) to use when creating the bundle. This value is optional for simulator builds as the simulator doesn't fully enforce entitlements, but is required for device builds. |
Label | optional | None |
| shared_capabilities | A list of shared apple_capability_set rules to represent the capabilities that a code sign aware Apple bundle rule output should have. These can define the formal prefix for the target's bundle_id and can further be merged with information provided by entitlements, if defined by any capabilities found within the apple_capability_set. |
List of labels | optional | [] |
| stamp | Enable link stamping. Whether to encode build information into the binary. Possible values: * stamp = 1: Stamp the build information into the binary. Stamped binaries are only rebuilt when their dependencies change. Use this if there are tests that depend on the build information. * stamp = 0: Always replace build information by constant values. This gives good build result caching. * stamp = -1: Embedding of build information is controlled by the --[no]stamp flag. |
Integer | optional | -1 |
| strings | A list of .strings files, often localizable. These files are converted to binary plists (if they are not already) and placed in the root of the final bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| version | An apple_bundle_version target that represents the version for this target. See apple_bundle_version. |
Label | optional | None |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_framework")
watchos_framework(name, deps, resources, hdrs, additional_linker_inputs, base_bundle_id, bundle_id,
bundle_id_suffix, bundle_name, bundle_only, codesign_inputs, codesignopts,
executable_name, exported_symbols_lists, extension_safe, families, frameworks,
infoplists, ipa_post_processor, linkopts, minimum_deployment_os_version,
minimum_os_version, platform_type, provisioning_profile, stamp, strings, version)
Builds and bundles a watchOS Dynamic Framework.
To use this framework for your extensions, list it in the frameworks attributes of
those watchos_extension rules.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | A list of dependent targets that will be linked into this target's binary(s). Any resources, such as asset catalogs, that are referenced by those targets will also be transitively included in the final bundle(s). | List of labels | optional | [] |
| resources | A list of resources or files bundled with the bundle. The resources will be stored in the appropriate resources location within the bundle. | List of labels | optional | [] |
| hdrs | - | List of labels | optional | [] |
| additional_linker_inputs | A list of input files to be passed to the linker. | List of labels | optional | [] |
| base_bundle_id | The base bundle ID rule to dictate the form that a given bundle rule's bundle ID prefix should take. | Label | optional | None |
| bundle_id | The bundle ID (reverse-DNS path followed by app name) for this target. Only use this attribute if the bundle ID is not intended to be composed through an assigned base bundle ID referenced by base_bundle_id. |
String | optional | "" |
| bundle_id_suffix | A string to act as the suffix of the composed bundle ID. If this target's bundle ID is composed from the base bundle ID rule referenced by base_bundle_id, then this string will be appended to the end of the bundle ID following a "." separator. |
String | optional | "bundle_name" |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| bundle_only | Avoid linking the dynamic framework, but still include it in the app. This is useful when you want to manually dlopen the framework at runtime. | Boolean | optional | False |
| codesign_inputs | A list of dependencies targets that provide inputs that will be used by codesign (referenced with codesignopts). |
List of labels | optional | [] |
| codesignopts | A list of strings representing extra flags that should be passed to codesign. |
List of strings | optional | [] |
| executable_name | The desired name of the executable, if the bundle has an executable. If this attribute is not set, then the name of the bundle_name attribute will be used if it is set; if not, then the name of the target will be used instead. |
String | optional | "" |
| exported_symbols_lists | A list of targets containing exported symbols lists files for the linker to control symbol resolution. Each file is expected to have a list of global symbol names that will remain as global symbols in the compiled binary owned by this framework. All other global symbols will be treated as if they were marked as __private_extern__ (aka visibility=hidden) and will not be global in the output file.See the man page documentation for ld(1) on macOS for more details. |
List of labels | optional | [] |
| extension_safe | If true, compiles and links this framework with -application-extension, restricting the binary to use only extension-safe APIs. |
Boolean | optional | False |
| families | A list of device families supported by this rule. At least one must be specified. | List of strings | optional | ["watch"] |
| frameworks | A list of framework targets (see watchos_framework) that this target depends on. |
List of labels | optional | [] |
| infoplists | A list of .plist files that will be merged to form the Info.plist for this target. At least one file must be specified. Please see Info.plist Handling for what is supported. | List of labels | required | |
| ipa_post_processor | A tool that edits this target's archive after it is assembled but before it is signed. The tool is invoked with a single command-line argument that denotes the path to a directory containing the unzipped contents of the archive; this target's bundle will be the directory's only contents. Any changes made by the tool must be made in this directory, and the tool's execution must be hermetic given these inputs to ensure that the result can be safely cached. |
Label | optional | None |
| linkopts | A list of strings representing extra flags that should be passed to the linker. | List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| provisioning_profile | The provisioning profile (.mobileprovision file) to use when creating the bundle. This value is optional for simulator builds as the simulator doesn't fully enforce entitlements, but is required for device builds. |
Label | optional | None |
| stamp | Enable link stamping. Whether to encode build information into the binary. Possible values: * stamp = 1: Stamp the build information into the binary. Stamped binaries are only rebuilt when their dependencies change. Use this if there are tests that depend on the build information. * stamp = 0: Always replace build information by constant values. This gives good build result caching. * stamp = -1: Embedding of build information is controlled by the --[no]stamp flag. |
Integer | optional | -1 |
| strings | A list of .strings files, often localizable. These files are converted to binary plists (if they are not already) and placed in the root of the final bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| version | An apple_bundle_version target that represents the version for this target. See apple_bundle_version. |
Label | optional | None |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_static_framework")
watchos_static_framework(name, deps, resources, hdrs, additional_linker_inputs, avoid_deps,
bundle_name, codesign_inputs, codesignopts, exclude_resources,
executable_name, exported_symbols_lists, families, ipa_post_processor,
linkopts, minimum_deployment_os_version, minimum_os_version, platform_type,
stamp, strings, umbrella_header, version)
Builds and bundles a watchOS Static Framework.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | A list of dependent targets that will be linked into this target's binary(s). Any resources, such as asset catalogs, that are referenced by those targets will also be transitively included in the final bundle(s). | List of labels | optional | [] |
| resources | A list of resources or files bundled with the bundle. The resources will be stored in the appropriate resources location within the bundle. | List of labels | optional | [] |
| hdrs | A list of .h files that will be publicly exposed by this framework. These headers should have framework-relative imports, and if non-empty, an umbrella header named %{bundle_name}.h will also be generated that imports all of the headers listed here. |
List of labels | optional | [] |
| additional_linker_inputs | A list of input files to be passed to the linker. | List of labels | optional | [] |
| avoid_deps | A list of library targets on which this framework depends in order to compile, but the transitive closure of which will not be linked into the framework's binary. | List of labels | optional | [] |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| codesign_inputs | A list of dependencies targets that provide inputs that will be used by codesign (referenced with codesignopts). |
List of labels | optional | [] |
| codesignopts | A list of strings representing extra flags that should be passed to codesign. |
List of strings | optional | [] |
| exclude_resources | Indicates whether resources should be excluded from the bundle. This can be used to avoid unnecessarily bundling resources if the static framework is being distributed in a different fashion, such as a Cocoapod. | Boolean | optional | False |
| executable_name | The desired name of the executable, if the bundle has an executable. If this attribute is not set, then the name of the bundle_name attribute will be used if it is set; if not, then the name of the target will be used instead. |
String | optional | "" |
| exported_symbols_lists | A list of targets containing exported symbols lists files for the linker to control symbol resolution. Each file is expected to have a list of global symbol names that will remain as global symbols in the compiled binary owned by this framework. All other global symbols will be treated as if they were marked as __private_extern__ (aka visibility=hidden) and will not be global in the output file.See the man page documentation for ld(1) on macOS for more details. |
List of labels | optional | [] |
| families | A list of device families supported by this rule. At least one must be specified. | List of strings | optional | ["watch"] |
| ipa_post_processor | A tool that edits this target's archive after it is assembled but before it is signed. The tool is invoked with a single command-line argument that denotes the path to a directory containing the unzipped contents of the archive; this target's bundle will be the directory's only contents. Any changes made by the tool must be made in this directory, and the tool's execution must be hermetic given these inputs to ensure that the result can be safely cached. |
Label | optional | None |
| linkopts | A list of strings representing extra flags that should be passed to the linker. | List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| stamp | Enable link stamping. Whether to encode build information into the binary. Possible values: * stamp = 1: Stamp the build information into the binary. Stamped binaries are only rebuilt when their dependencies change. Use this if there are tests that depend on the build information. * stamp = 0: Always replace build information by constant values. This gives good build result caching. * stamp = -1: Embedding of build information is controlled by the --[no]stamp flag. |
Integer | optional | -1 |
| strings | A list of .strings files, often localizable. These files are converted to binary plists (if they are not already) and placed in the root of the final bundle, unless a file's immediate containing directory is named *.lproj, in which case it will be placed under a directory with the same name in the bundle. |
List of labels | optional | [] |
| umbrella_header | An optional single .h file to use as the umbrella header for this framework. Usually, this header will have the same name as this target, so that clients can load the header using the #import <MyFramework/MyFramework.h> format. If this attribute is not specified (the common use case), an umbrella header will be generated under the same name as this target. | Label | optional | None |
| version | An apple_bundle_version target that represents the version for this target. See apple_bundle_version. |
Label | optional | None |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_ui_test")
watchos_ui_test(name, deps, data, bundle_name, collect_code_coverage, env, env_inherit,
minimum_deployment_os_version, minimum_os_version, platform_type, runner,
test_coverage_manifest, test_filter, test_host, test_host_is_bundle_loader)
watchOS UI Test rule.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | - | List of labels | required | |
| data | Files to be made available to the test during its execution. | List of labels | optional | [] |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| collect_code_coverage | Whether to collect code coverage for this test if --collect_code_coverage=yes. |
Boolean | optional | True |
| env | Dictionary of environment variables that should be set during the test execution. The values of the dictionary are subject to "Make" variable expansion. | Dictionary: String -> String | optional | {} |
| env_inherit | List of environment variables to inherit from the external environment. | List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| runner | The runner target that will provide the logic on how to run the tests. Needs to provide the AppleTestRunnerInfo provider. | Label | required | |
| test_coverage_manifest | A file that will be used in lcov export calls to limit the scope of files instrumented with coverage. | Label | optional | None |
| test_filter | Test filter string that will be passed into the test runner to select which tests will run. | String | optional | "" |
| test_host | - | Label | optional | None |
| test_host_is_bundle_loader | Whether the 'test_host' should be used as the -bundle_loader to allow testing the symbols from the test host app | Boolean | optional | True |
load("@rules_apple//apple:watchos.doc.bzl", "watchos_unit_test")
watchos_unit_test(name, deps, data, bundle_name, collect_code_coverage, env, env_inherit,
minimum_deployment_os_version, minimum_os_version, platform_type, runner,
test_coverage_manifest, test_filter, test_host, test_host_is_bundle_loader)
watchOS Unit Test rule.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | - | List of labels | required | |
| data | Files to be made available to the test during its execution. | List of labels | optional | [] |
| bundle_name | The desired name of the bundle (without the extension). If this attribute is not set, then the name of the target will be used instead. | String | optional | "" |
| collect_code_coverage | Whether to collect code coverage for this test if --collect_code_coverage=yes. |
Boolean | optional | True |
| env | Dictionary of environment variables that should be set during the test execution. The values of the dictionary are subject to "Make" variable expansion. | Dictionary: String -> String | optional | {} |
| env_inherit | List of environment variables to inherit from the external environment. | List of strings | optional | [] |
| minimum_deployment_os_version | A required string indicating the minimum deployment OS version supported by the target, represented as a dotted version number (for example, "9.0"). This is different from minimum_os_version, which is effective at compile time. Ensure version specific APIs are guarded with available clauses. |
String | optional | "" |
| minimum_os_version | A required string indicating the minimum OS version supported by the target, represented as a dotted version number (for example, "9.0"). | String | required | |
| platform_type | - | String | optional | "watchos" |
| runner | The runner target that will provide the logic on how to run the tests. Needs to provide the AppleTestRunnerInfo provider. | Label | required | |
| test_coverage_manifest | A file that will be used in lcov export calls to limit the scope of files instrumented with coverage. | Label | optional | None |
| test_filter | Test filter string that will be passed into the test runner to select which tests will run. | String | optional | "" |
| test_host | - | Label | optional | None |
| test_host_is_bundle_loader | Whether the 'test_host' should be used as the -bundle_loader to allow testing the symbols from the test host app | Boolean | optional | True |