Sign In with Apple capability disabled when building

See original GitHub issue

Summary

In version 0.38.2, managed workflow, the “Sign In with Apple” capability gets disabled when building.

Our build command and output sample (STAGE gets passed to app.config.js):

STAGE=development eas build --profile development --platform ios
[...]
✔ Synced capabilities: Disabled: Sign In with Apple
✔ Synced capability identifiers: No updates
[...]

Other capabilities (Associated Domains and Push Notifications) remain enabled as expected.

Downgrading to eas-cli 0.37.0 fixes the issue and re-enables the capability.

I have "expo-apple-authentication": "~4.0.3" installed and no other config related to it (per the docs for managed workflow).

Environment

  EAS CLI 0.38.2 environment info:
    System:
      OS: macOS 12.0.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 14.18.1 - ~/.nvm/versions/node/v14.18.1/bin/node
      Yarn: 1.22.17 - /opt/homebrew/bin/yarn
      npm: 6.14.15 - ~/.nvm/versions/node/v14.18.1/bin/npm
    Utilities:
      Git: 2.33.1 - /opt/homebrew/bin/git
    npmPackages:
      expo: ^43.0.0 => 43.0.1 
      expo-dev-client: ~0.6.3 => 0.6.3 
      react: ^17.0.2 => 17.0.2 
      react-dom: ^17.0.2 => 17.0.2 
      react-native: 0.64.3 => 0.64.3 
      react-native-web: 0.17.1 => 0.17.1 
    npmGlobalPackages:
      eas-cli: 0.38.2
      expo-cli: 4.13.0

Error output

Here’s debug output for the capability sync section of the build command (IDs and domains elided):

- Syncing capabilities
Current remote capabilities:
[
  {
    "context": {
      "providerId": 121041716,
      "teamId": "[...]"
    },
    "id": "LRLK3GA2R2_GAME_CENTER",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": [
        {
          "key": "GAME_CENTER_SETTING",
          "options": [
            {
              "key": "GAME_CENTER_IOS",
              "properties": [
                null
              ]
            }
          ]
        }
      ],
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "bdee819d-437a-4aea-bb43-497efe3bc199"
    }
  },
  {
    "context": {
      "providerId": 121041716,
      "teamId": "[...]"
    },
    "id": "LRLK3GA2R2_IN_APP_PURCHASE",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "bdee819d-437a-4aea-bb43-497efe3bc199"
    }
  },
  {
    "context": {
      "providerId": 121041716,
      "teamId": "[...]"
    },
    "id": "LRLK3GA2R2_PUSH_NOTIFICATIONS",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "bdee819d-437a-4aea-bb43-497efe3bc199"
    }
  },
  {
    "context": {
      "providerId": 121041716,
      "teamId": "[...]"
    },
    "id": "LRLK3GA2R2_APPLE_ID_AUTH",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": [
        {
          "key": "APPLE_ID_AUTH_APP_CONSENT",
          "options": [
            {
              "key": "PRIMARY_APP_CONSENT",
              "properties": [
                null
              ]
            }
          ]
        }
      ],
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "bdee819d-437a-4aea-bb43-497efe3bc199"
    }
  },
  {
    "context": {
      "providerId": 121041716,
      "teamId": "[...]"
    },
    "id": "LRLK3GA2R2_ASSOCIATED_DOMAINS",
    "attributes": {
      "ownerType": "BUNDLE",
      "settings": null,
      "editable": true,
      "inputs": null,
      "enabled": true,
      "responseId": "bdee819d-437a-4aea-bb43-497efe3bc199"
    }
  }
]

Current local entitlements:
{
  "com.apple.developer.associated-domains": [
    "applinks:[...]
  ],
  "aps-environment": "development"
}
Skipping existing capability: com.apple.developer.associated-domains (Associated Domains)
Remaining to remove:  [
  'LRLK3GA2R2_GAME_CENTER',
  'LRLK3GA2R2_IN_APP_PURCHASE',
  'LRLK3GA2R2_PUSH_NOTIFICATIONS',
  'LRLK3GA2R2_APPLE_ID_AUTH'
]
Skipping existing capability: aps-environment (Push Notifications)
Remaining to remove:  [
  'LRLK3GA2R2_GAME_CENTER',
  'LRLK3GA2R2_IN_APP_PURCHASE',
  'LRLK3GA2R2_APPLE_ID_AUTH'
]
Existing to disable:  [
  'LRLK3GA2R2_GAME_CENTER',
  'LRLK3GA2R2_IN_APP_PURCHASE',
  'LRLK3GA2R2_APPLE_ID_AUTH'
]
Patch Request: [ { capabilityType: 'APPLE_ID_AUTH', option: 'OFF' } ]
✔ Synced capabilities: Disabled: Sign In with Apple
- Syncing capabilities identifiers
No capability identifiers need to be updated
✔ Synced capability identifiers: No updates

Reproducible demo or steps to reproduce from a blank project

Don’t have time now to reproduce from scratch. Let me know if you need more info about our project.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:7 (3 by maintainers)

github_iconTop GitHub Comments

6reactions
EvanBaconcommented, Nov 29, 2021

I see, this is possibly related to https://github.com/expo/expo-cli/pull/4031 then, will investigate further.

Edit: this does appear to be a logic bug, as a temporary workaround, you can add:

app.json

{
  "expo": {
    "ios": {
      "entitlements": {
        "com.apple.developer.applesignin": ["Default"]
      }
    }
  }
}
1reaction
mbrimmer83commented, Jun 14, 2022

This looks correct to me, based on the introspected entitlements object (no apple sign in entitlement):

{
  "com.apple.developer.associated-domains": [
    "applinks:[...]
  ],
  "aps-environment": "development"
}

Perhaps you have a local entitlements file in your ios folder (?) and this is preventing the introspection.

This can be resolved by either syncing the bare entitlements locally expo prebuild -p ios --no-install or by clearing the ios folder and reverting back to managed workflow.

Just ran into this after upgrading to Expo 45 in the bare workflow and running this command fix it for me.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Configuring Sign in with Apple support - Apple Developer
To use Sign in with Apple in your app, add the capability by configuring your ... ID's configuration in the developer portal to...
Read more >
Enable app capabilities - Manage identifiers - Account - Help
These app capabilities require additional steps: Sign in with Apple, creating App IDs for Mac apps based on iPad apps, App groups, Apple...
Read more >
Adding capabilities to your app - Apple Developer
You add capabilities to your app using the Signing & Capabilities pane of the project editor. In the Project navigator of the main...
Read more >
Cannot add capabilities to app ID | Apple Developer Forums
Hello,. you have to enable the capabilities in the app id which is accessible in the apple member portal under "Certificates, Identifiers &...
Read more >
About Sign in with Apple - Configure app capabilities - Account
To enable an App ID for a related app, (for example, an App ID for the iOS version of your Mac app), group...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found