Hi, I have a react native on Expo app that I am using LambdaTest. When user uses the app I use social login and for ios I use Apple login. In the app when I get to the login page and tap login it throws an error. Any idea on how to get LambdaTest to work for apple login (it works on my real iPad)?
I tried to give my apple id by tapping settings but it closes settings immediately (tried 2 different devices).
TIA.
@sankaransaharti
That makes sense — what you’re seeing on LambdaTest is actually expected behavior, and it isn’t a bug in your code.
Why Apple Login fails on LambdaTest real devices:
On your own iPad, your app is signed with your provisioning profile and entitlements, so Apple’s Sign in with Apple flow can work (because the Keychain + App ID + Team ID all match).
On LambdaTest, before your .ipa gets installed, we re-sign your app with our provisioning profile.
This removes your original entitlements (like com.apple.developer.applesignin and keychain sharing).
When you call AppleAuthentication.signInAsync() (Expo) or the native Apple SDK, Apple’s servers reject the request because the bundle ID / Team ID / signing identity don’t match what’s registered with Apple.
That’s also why when you try to open Settings → Apple ID sign-in, Settings crashes/closes immediately — the entitlement isn’t valid anymore.
So: Apple Sign In cannot work with re-signed builds on LambdaTest (or any other device cloud)
Since you’re on Expo, I’d suggest:
-
Keep native Apple login (AppleAuthentication) for production and your real QA iPad.
-
Add AuthSession (web flow) fallback when process.env.USE_WEB_OAUTH=true (or when you detect you’re running on LambdaTest).
Web-based OAuth flow for testing
-
In your Expo app, use expo-auth-session to hit Apple’s web login endpoint (https://appleid.apple.com/auth/authorize).
-
That works entirely in a browser tab, bypassing the native entitlements issue.
-
You can configure it so:
- On local/QA devices → use native Apple login (Expo’s
AppleAuthentication).
- On LambdaTest/cloud devices → fall back to the web OAuth flow.
This is the easiest way to keep login testable on LambdaTest.
That way:
- QA on LambdaTest devices won’t block at login.
- Your real iPad testing still uses the production login path.