Configure Sign In with Apple for a React Native App
Use this guide when the iOS app offers Apple login or when the app also offers third-party social login providers. Apple login setup involves Firebase, Apple Developer, and the native iOS target.
Quick Answer
Enable Apple as a Firebase Auth provider, enable Sign In with Apple on the Apple Developer App ID, add the Xcode capability to the iOS target, rebuild the app, then test Apple login on a real device or supported simulator with an Apple ID.
1. Enable Apple in Firebase Auth
- Open Firebase Console.
- Select your Firebase project.
- Go to Authentication > Sign-in method.
- Enable Apple.
- Save the provider settings.
Confirm the iOS app entry in Firebase uses the same bundle identifier as your Xcode target.
2. Enable the Apple Developer Capability
In Apple Developer:
- Open Certificates, Identifiers & Profiles.
- Select Identifiers.
- Open the App ID used by your iOS app.
- Enable Sign In with Apple.
- Save the App ID.
If you changed the bundle identifier during white-labeling, update the correct App ID before testing.
3. Add the Xcode Capability
Open the iOS workspace in Xcode:
- Select the app target.
- Open Signing & Capabilities.
- Add Sign In with Apple.
- Confirm the selected Team matches the Apple Developer account used above.
- Confirm the bundle identifier matches Firebase and Apple Developer.
4. Rebuild and Test
After changing native capabilities:
cd ios
bundle exec pod install
cd ..
yarn ios
Test with a real Apple ID. Confirm that:
- the Apple login prompt appears;
- sign-in returns to the app;
- a user appears in Firebase Console > Authentication > Users;
- the app creates or updates the expected user profile document.
Release Notes
- Apple login is relevant for iOS. Android does not require Apple Sign In.
- If the app offers third-party login providers on iOS, review Apple App Review requirements before submitting.
- Test both first-time sign-in and returning sign-in.
- Handle hidden Apple relay emails in profile and support workflows.
Troubleshooting
| Problem | Fix |
|---|---|
| Apple button does nothing | Check native package setup and Xcode capability. |
| Login returns an invalid credential | Check Firebase provider, bundle id, Apple Developer App ID, and app config files. |
| Works locally but not TestFlight | Check release provisioning profile and production bundle id. |
| User appears in Auth but not profile | Check the app's user creation flow and Firestore rules. |