Branch Integration Strips iOS Entitlements

  • Managed workflow
  • eas-cli 0.53.1

Hello, we are trying to integrate react-native-branch with associated domains for iOS Universal Links.

Before a build, running expo config --type introspect outputs this for iOS Entitlements:

entitlements: {
          'com.apple.developer.associated-domains': [
            'applinks:shmoody.app.link'
          ],
          'aps-environment': 'production',
          'com.apple.developer.applesignin': [
            'Default'
          ],
          'com.apple.security.application-groups': [
            'group.com.yc14ec100daa.www.onesignal'
          ]
        }

However, after running eas build the XCode logs show the following entitlements:

    Entitlements:
    
    {
    "application-identifier" = "9T3ZC4D4BU.com.yc14ec100daa.www";
    "beta-reports-active" = 1;
    "com.apple.developer.team-identifier" = 9T3ZC4D4BU;
    "get-task-allow" = 0;
}
    

We’ve verified that the provisioning profile assigned during the build is valid, and has the correct capabilities enabled.

A similar problem was happening a couple months ago while integrating OneSignal push notifications. The core issue at that time was that EAS couldn’t add entitlements for multiple targets in a managed workflow project. However, we haven’t had any issue with our entitlements since eas-cli was updated to address that issue.

Since I don’t think Branch.io requires building another target, it’s unclear what might be causing this issue.

@wkozyra You were super helpful with getting OneSignal working. Is there any possible conflict between the two config plugins during eas build

For anyone hitting this problem…

I moved OneSignal to the top of my list of plugins in my app.config.ts file, and it applied the entitlements correctly.

I think this is more of a workaround than a solution. The issue should probably be addressed in the eas library

1 Like