- SDK Version: (expo: 45.0.5, react-native: 0.68.2)
- Platforms(Android/iOS/web/all): IOS/Androis
- LogIn, Applen Expo
Hello,
My apple sign in work fine on Expo Go and Simulator but when i want to connect with TestFlight, nothing happens. So Apple send me a review that : " We discovered one or more bugs in your app. Specifically, the app stays on the login screen when attempting to log in using Sign in with Apple. ". I don’t know why this happen. Did I missing something ? Thanks to all in advance.
My code : const loginWithApple = () => {
const nonce = Math.random().toString(36).substring(2, 10);
return Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, nonce)
.then((hashedNonce) =>
AppleAuthentication.signInAsync({
requestedScopes: [
AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
AppleAuthentication.AppleAuthenticationScope.EMAIL
],
nonce: hashedNonce
})
)
.then(async (appleCredential) => {
const { identityToken } = appleCredential;
const provider = new firebase.auth.OAuthProvider('apple.com');
const credential = await provider.credential({
idToken: identityToken,
rawNonce: nonce
});
await firebase.auth().signInWithCredential(credential).then((res) => {
const profileInfo = res.user.providerData[0];
const uid = res.user.uid;
let action = addUserOnFirestore(
uid,
profileInfo.email,
profileInfo.displayName?.split(" ")[0],
profileInfo.displayName?.split(" ")[2],
profileInfo.photoURL,
res,
props.navigation
);
setIsLoading(true);
try {
dispatch(action);
} catch (err) {
setError(err.message);
}
setIsLoading(false);
});
// Successful sign in is handled by firebase.auth().onAuthStateChanged
})
.catch((error) => {
console.log('Error : ', error);
});
}