aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java11
2 files changed, 25 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java
index 224e9bf449..a03acd46ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java
@@ -42,14 +42,19 @@ final class BundleMergeControlBytes extends ByteSource {
private final Artifact mergedIpa;
private final ObjcConfiguration objcConfiguration;
private final ImmutableSet<TargetDeviceFamily> families;
+ private final String primaryBundleIdentifier;
+ private final String fallbackBundleIdentifier;
public BundleMergeControlBytes(
Bundling rootBundling, Artifact mergedIpa, ObjcConfiguration objcConfiguration,
- ImmutableSet<TargetDeviceFamily> families) {
+ ImmutableSet<TargetDeviceFamily> families,
+ String primaryBundleIdentifer, String fallbackBundleIdentifier) {
this.rootBundling = Preconditions.checkNotNull(rootBundling);
this.mergedIpa = Preconditions.checkNotNull(mergedIpa);
this.objcConfiguration = Preconditions.checkNotNull(objcConfiguration);
this.families = Preconditions.checkNotNull(families);
+ this.primaryBundleIdentifier = primaryBundleIdentifer;
+ this.fallbackBundleIdentifier = fallbackBundleIdentifier;
}
@Override
@@ -114,7 +119,15 @@ final class BundleMergeControlBytes extends ByteSource {
for (Bundling nestedBundling : bundling.getObjcProvider().get(NESTED_BUNDLE)) {
control.addNestedBundle(control(mergeZipPrefix, nestedBundling));
}
-
+
+ if (primaryBundleIdentifier != null) {
+ control.setPrimaryBundleIdentifier(primaryBundleIdentifier);
+ }
+
+ if (fallbackBundleIdentifier != null) {
+ control.setFallbackBundleIdentifier(fallbackBundleIdentifier);
+ }
+
return control.build();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index e0dfb9c1af..b4aebb4cb6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -184,9 +184,18 @@ public final class ReleaseBundlingSupport {
} else {
maybeSignedIpa = registerBundleSigningActions(ipaOutput);
}
+
+ String primaryBundleId = null;
+ String fallbackBundleId = null;
+ if (ruleContext.attributes().isAttributeValueExplicitlySpecified("bundle_id")) {
+ primaryBundleId = attributes.bundleId();
+ } else {
+ fallbackBundleId = attributes.bundleId();
+ }
+
BundleMergeControlBytes bundleMergeControlBytes = new BundleMergeControlBytes(
- bundling, maybeSignedIpa, objcConfiguration, families);
+ bundling, maybeSignedIpa, objcConfiguration, families, primaryBundleId, fallbackBundleId);
registerBundleMergeActions(
maybeSignedIpa, bundling.getBundleContentArtifacts(), bundleMergeControlBytes);