Skip to content

docs: Improve Apple Sign-In setup with missing steps and troubleshooting#473

Open
Zfinix wants to merge 5 commits intomainfrom
chore/update-sign-in-with-apple-docs
Open

docs: Improve Apple Sign-In setup with missing steps and troubleshooting#473
Zfinix wants to merge 5 commits intomainfrom
chore/update-sign-in-with-apple-docs

Conversation

@Zfinix
Copy link
Copy Markdown
Contributor

@Zfinix Zfinix commented Apr 29, 2026

Summary

  • Added missing Apple JS SDK script tag for Web setup
  • Added --dart-define instructions for Web/Android client configuration
  • Added troubleshooting entries for missing JS SDK and macOS sandbox conflict
  • Organized troubleshooting checklist by category (Portal / Server / Client)
  • Consolidated 3 back-to-back admonitions into 1 tip
  • Fixed broken link and removed $ prefix from bash commands

Test plan

  • Followed every step from a fresh serverpod create project
  • Verified Apple Sign-In on Safari (Web) and macOS native
  • Confirmed each new troubleshooting entry matches a real failure mode

@Zfinix Zfinix requested a review from Swiftaxe April 29, 2026 10:38

### Loading credentials manually

If you use `AppleIdpConfig` instead of `AppleIdpConfigFromPasswords`, you must provide each credential explicitly:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here as with the Google sign-in. Mentioning 'FromPasswords' here like this, can be interpreted as that you can use any of these classes to load manually. Improve clarity:

Suggested change
If you use `AppleIdpConfig` instead of `AppleIdpConfigFromPasswords`, you must provide each credential explicitly:
For more control over how credentials are loaded, use `AppleIdpConfig`. You must provide each credential explicitly:


Go through this before investigating a specific error. Most problems come from a missed step.

#### Apple Developer Portal
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double check we are not missing any important step, that the user could have missed, in these checklists below.

* [ ] Make sure **`appleKey`** in your config holds the raw `.p8` file contents (not a pre-generated JWT).
* [ ] Double-check the **`.p8` key** is indented consistently under `appleKey: |` in `passwords.yaml`.
* [ ] Run **`serverpod generate`** after adding the Apple provider, and apply migrations using `--apply-migrations`.
* [ ] Create a **Sign in with Apple key** and download the `.p8` file.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also add checking Domains and Subdomains to the portal list?

Sign-in with Apple requires that you have a subscription to the [Apple Developer Program](https://developer.apple.com/programs/), even if you only want to test the feature in development mode.

:::caution
You need to install the auth module before you continue, see [Setup](../../setup).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note about installing the auth module is removed. It is not great to direct users to the Setup page though, especially if they unknowingly have it installed from the create template.

Do we need a note down under 'Configure the server' to verify they have the package in pubspec.yaml, and if not, they need to go to Setup?


You can use the `onAfterAppleAccountCreated` callback to run logic after a new Apple account has been created and linked to an auth user. This callback is only invoked for new accounts, not for returning users.

This callback is complimentary to the [core `onAfterAuthUserCreated` callback](../../working-with-users#reacting-to-the-user-created-event) to perform side-effects that are specific to a login on this provider - like storing analytics, sending a welcome email, or storing additional data.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link looks weird having the onAfterAuthUserCreated in the middle. Consider linking only the onAfterAuthUserCreated part. (not 'core' and 'callback'.

:::

## `AppleIdpConfig` parameter reference
## All configuration parameters
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Google sign-in docs list the GoogleIdpConfig params. Should we list the AppleIdpConfig params here as well?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no need as we already did list them above, Apple and Google config are not the same they have different rules and different ways to implement them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants