What are social login rejections?
If you offer third-party login on iOS, you must include Sign in with Apple Apple requires that any app offering third-party social login (Google, Facebook, Twitter, etc.) must also offer Sign in with Apple. This is non-negotiable. Common rejection messages:- “Your app uses third-party login but does not offer Sign in with Apple”
- “Apps that use a third-party login service must also offer Sign in with Apple”
- “Guideline 4.8 - Sign in with Apple is required”
Why this happens
Apple’s Guideline 4.8 is explicit Since September 2019, Apple requires Sign in with Apple for any app that offers third-party authentication. There are no exceptions for apps with Google, Facebook, or other social login options. The rule is simple:- Third-party login present → Sign in with Apple required
- No third-party login → Sign in with Apple not required
- Email/password only → Sign in with Apple not required
How to fix it
Option 1: Add Sign in with Apple
The standard solution If you have Google login, add Apple login. Despia supports both with platform-specific implementations. Apple Sign In uses different approaches per platform:| Platform | Method | Experience |
|---|---|---|
| iOS | Apple JS SDK | Native Face ID dialog (instant) |
| Android | oauth:// protocol | ASWebAuthenticationSession |
| Web | Apple JS SDK | Native browser dialog (instant) |
| Platform | Method | Experience |
|---|---|---|
| iOS/Android | oauth:// protocol | ASWebAuthenticationSession / Chrome Custom Tabs |
| Web | Standard OAuth | Popup or redirect flow |
- Apple Developer Console setup (App ID, Service ID, Sign In Key)
- Backend endpoint for token verification
- Different code paths for iOS, Android, and Web
Option 2: Remove social login entirely
If you can’t implement Apple login, remove all social login If adding Sign in with Apple isn’t feasible, remove Google/Facebook login from the iOS app. Use alternative authentication instead. Alternatives to social login:- Email and password
- Email magic link (passwordless)
- SMS verification
- No login (using Storage Vault for device identification)
Option 3: No login with Storage Vault
For apps that don’t need user accounts If your app doesn’t require user accounts, use the Storage Vault to identify devices without any login.- No login screen needed
- Identity persists across sessions and reinstalls
- No social login = no Apple login requirement
- Works for apps where accounts aren’t essential
Platform-specific login
Different login options per platform You can show different options on iOS vs Android, but be careful: iOS app must have:- Sign in with Apple (if any social login is present)
- Any other social logins you want
- Google Sign-In (recommended if you have Apple login)
- Any other social logins you want
oauth:// protocol to open a secure browser session:
- Your app calls
despia('oauth://?url=...')with the OAuth URL - iOS opens ASWebAuthenticationSession, Android opens Chrome Custom Tabs
- User authenticates in the secure browser
- OAuth redirects to your callback page (still in browser session)
- Callback page redirects to
yourappdeeplink://oauth/auth?tokens - The
oauth/prefix tells Despia to close the browser and return to app - App navigates to
/auth?tokensand sets the session
What counts as third-party login
These trigger the Apple login requirement:- Google Sign-In
- Facebook Login
- Twitter/X Login
- TikTok Login
- GitHub Login
- Any OAuth-based social login
- Email and password
- Email magic links
- SMS verification
- Phone number login
- No login at all
- Enterprise SSO (in some cases)
Common mistakes
Mistake 1: Google login without Apple login on iOS Every iOS app with Google login needs Apple login too. No exceptions. Mistake 2: Hiding Apple login Apple login must be equally prominent. Don’t show Google first and hide Apple in “more options.” Mistake 3: Different account systems If Google and Apple logins create separate accounts for the same email, users get confused. Handle account linking properly. Mistake 4: Web-only social login If your web app has Google login and your native app loads that web content, the native app still needs Apple login. Mistake 5: Wrong deeplink format for native OAuth When closing the secure browser session, useyourappdeeplink://oauth/auth?tokens format. The oauth/ prefix is required to close ASWebAuthenticationSession / Chrome Custom Tabs. Without it, users get stuck in the browser.
Quick checklist
If you have social login:- Sign in with Apple implemented on iOS
- Apple login equally prominent as other options
- Google login recommended on Android
- Account linking handles same email from different providers
- Remove ALL social login from iOS app
- Use email/password, SMS, or magic link instead
- Or use Storage Vault for no-login approach
- Login options appropriate for each platform
- User agent detection shows correct options
- Privacy policy mentions all authentication methods
Common rejection reasons
| Rejection | Fix |
|---|---|
| ”No Sign in with Apple” | Add Apple login or remove all social login |
| ”Apple login not prominent” | Make Apple button same size/position as Google |
| ”Third-party login in WebView” | Native app still needs Apple login |
| ”Social login on some screens only” | Apple login required wherever social login appears |
Still stuck?
If you keep getting rejected for login issues:- Check every screen where login appears - Apple must be on all of them
- Verify Apple login button is equally visible (not hidden in “more options”)
- Test the complete Apple login flow works end-to-end
- Contact support: support@despia.com with:
- Your rejection notice in full
- Screenshot of your login screen
- List of authentication methods your app uses