Permalink
Browse files

Merge certain entitlement keys that should be included

Summary:
Some entitlements were incorrectly excluded from being merged when signing a iOS bundle.

This would manifest itself in the edge case where we added one of these entitlements to an app, but Buck still chose an old provisioning profile without the newly-added entitlements.

This caused Buck-built `.ipa`s to be uninstallable on devices (or not able to be submitted to the App Store) if their profile didn't have the right entitlements.

Test Plan: Build apps with those entitlements and submit them to App Store.

Reviewed By: dinhviethoa

fbshipit-source-id: 5444f1d
  • Loading branch information...
ryu2 authored and Facebook Github Bot committed Oct 25, 2016
1 parent 9b75fd8 commit 36db188da9f6acbb9df419dc1904315ab00c4e19
Showing with 0 additions and 2 deletions.
  1. +0 −2 src/com/facebook/buck/apple/AbstractProvisioningProfileMetadata.java
@@ -185,9 +185,7 @@ public void appendToRuleKey(RuleKeyObjectSink sink) {
"com.apple.developer.homekit",
"com.apple.developer.healthkit",
"com.apple.developer.in-app-payments",
"com.apple.developer.associated-domains",
"com.apple.developer.maps",
"com.apple.developer.networking.vpn.api",
"com.apple.external-accessory.wireless-configuration"
);

3 comments on commit 36db188

@kapfab

This comment has been minimized.

kapfab replied Dec 6, 2017

Hi,
Why did you remove com.apple.developer.associated-domains from the backlisted keys ?
This key should not go from the provisioning profile (where it is always set to * AFAIK) to the resulting Entitlements : the * value is considered as invalid by Apple.

@ryu2

This comment has been minimized.

Contributor

ryu2 replied Dec 6, 2017

For apps that support universal links, we do need that key in the entitlements. https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2

In those cases, the value would not be '*'.

@kapfab

This comment has been minimized.

kapfab replied Dec 6, 2017

My understanding was that these excluded keys were removed from the Provisioning Profile (where associated domains are always *), not from the resulting Entitlements (thus allowing the actual values from the App Entitlements to be used instead).

Please sign in to comment.