Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

App Store rejection

Guideline 4.8 (Login Services): adding Sign in with Apple to a Supabase, Firebase or Base44 app

Your login screen offers Google or Facebook, and Apple rejected the app under 4.8. The rule is simple: if you let people sign in with a third-party service, you must also offer an option that keeps their data private, and Sign in with Apple is the one Apple has in mind. For a web-wrapped app it is an afternoon of configuration, not a rewrite.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

What 4.8 requires

When an app uses a third-party or social login service to set up or authenticate the user's primary account, it must also offer an equivalent login option that limits data collection to name and email, lets users keep their email address private, and does not collect interactions with the app for advertising without consent. Sign in with Apple meets all three, which is why reviewers ask for it by name. The rule does not apply if your app exclusively uses your own email/password account system, or if it is a client for a specific third-party service (for example an app that only works with a Google account), or for enterprise, education and government ID logins.

Vibe-coded apps hit 4.8 because Lovable, Bolt, v0 and Base44 add Google login with one click and nobody adds Apple. A second variant: the Apple button exists but fails inside the app because the return URL or the client secret is wrong.

Enable Sign in with Apple for a web-wrapped app

Nothing changes in WebViewGold: the appleid.apple.com flow is detected and handled automatically.

  1. Apple Developer account: capability, Services ID, key

    Enable the Sign in with Apple capability on your App ID. Create a Services ID for web authentication, register your domain and the return URL of your auth provider (Supabase: https://PROJECT.supabase.co/auth/v1/callback; Firebase: https://PROJECT.firebaseapp.com/__/auth/handler). Create a Sign in with Apple key and download the .p8 file; note Team ID and Key ID.

  2. Turn on the Apple provider

    Supabase: Authentication, Providers, Apple; enter the Services ID as client ID and generate the client secret from the .p8 (Supabase documents the command; the secret is a JWT that Apple limits to six months, so set a reminder to rotate it). Firebase: Authentication, Sign-in method, Apple, paste Services ID, Team ID, Key ID and key. Clerk and Auth0 have equivalent Apple connections.

  3. Add the button to your web app

    Same size and position as the Google button, following Apple's button style (black or white, Apple logo, "Sign in with Apple"). The snippet below shows the Supabase call; for Firebase use an OAuthProvider for apple.com.

  4. Handle the first-login data

    Apple sends the user's name only on the first authorization and may give you a private relay address ending in privaterelay.appleid.com. Save the name immediately and make sure your transactional email works with relay addresses.

  5. Keep Google working inside the app

    Google blocks logins from embedded web views (the disallowed_useragent error). WebViewGold's Social Login Helper fixes that with the google_login_helper_triggers list in Config.swift (facebook_login_helper_triggers for Facebook); see the social login docs and the disallowed_useragent fix.

  6. Test, then reply

    Fresh install, Sign in with Apple with a new Apple ID, then Google, then log out and back in. Upload the new build, mention the Apple login and the demo account in the Resolution Center reply.

The Supabase call next to your Google button

javascript
// Supabase (Lovable, Bolt, v0, Cursor projects): Apple next to Google
async function signInWithApple() {
  const { error } = await supabase.auth.signInWithOAuth({
    provider: "apple",
    options: { redirectTo: window.location.origin + "/auth/callback" }
  });
  if (error) console.error(error.message);
}
// Firebase: const provider = new OAuthProvider("apple.com"); signInWithRedirect(auth, provider);

With a good optimized version of your web app you can have a stunning mobile app within a couple of minutes. Additionally to that the customer service is very nice and very helpful! I can just recommend WebViewGold :-)

Julian Koch · Co-Founder of DuelDonkey · CodeCanyon

Provider notes

Supabase (Lovable, Bolt, v0, Cursor)

Apple provider available on every plan. Pre-create the demo account with email/password so reviewers do not need an Apple ID of their own.

Firebase (Firebase Studio, Google AI Studio)

Apple is a built-in sign-in method. Add your custom domain to the authorized domains list, or the redirect fails inside the app.

Base44 and other built-in auth

Check the user management settings for an Apple provider. If the platform cannot offer one, remove Google from the iOS app's login screen with app-only CSS and keep email/password; your own account system needs no Apple login.

Why the Apple button fails inside the app

  • Return URL in the Services ID does not match the provider callback exactly (trailing slash, http vs https).
  • Client secret expired: Apple caps it at six months. Regenerate and paste it into Supabase.
  • deletecache set to true in Config.swift clears cookies at every start, so users are logged out each time they open the app.

Frequently asked questions

Does WebViewGold need any setting for Sign in with Apple?

No. The appleid.apple.com login flow is recognized and handled automatically by the Social Login Helper. The trigger lists in Config.swift are only needed for Google and Facebook.

Is email/password plus Google enough to satisfy 4.8?

No. As soon as a third-party login is offered, Apple wants the privacy-preserving equivalent as well. Email/password alone, without social logins, is fine.

What if the reviewer cannot test Apple login because they use a test device?

Provide an email/password demo account in App Review Information. Reviewers verify that the Apple option exists and works; the demo account covers the rest of the review.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$109 per platform, one-time

The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.

See plans on the main page

Cloud Builder

$349 per license, one-time add-on

No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.

How the Cloud Builder works Try the free demo

Full Service

$698 per platform $798

Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.

Full Service details Powered by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.