diff options
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java | 17 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java | 11 |
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); |