问题描述
在IOS中输入密码后显示加载,之后没有任何反应。没有控制台日志?在android中工作正常。
我已经实现了反应原生苹果认证的V2 https://github.com/invertase/react-native-apple-authentication
在同一问题下尝试了 2 个代码。
代码 1
const IOSAppleLogin = async () => {
try {
// performs login request
const appleAuthRequestResponse = await appleAuth.performRequest({
requestedOperation: appleAuth.Operation.LOGIN,requestedScopes: [appleAuth.Scope.EMAIL,appleAuth.Scope.FULL_NAME]
});
const credentialState = await appleAuth.getCredentialStateForUser(
appleAuthRequestResponse.user
);
if (credentialState === appleAuth.State.AUTHORIZED) {
console.log('appleAuthRequestResponse',appleAuthRequestResponse);
const response = appleAuthRequestResponse;
console.log('apple-response',response);
// you may also want to send the device's ID to your server to link a device with the account
// identityToken generated
if (response) {
if (response.identityToken) {
let device_identifier = DeviceInfo.getUniqueId();
let details = {
'identity_token': response.identityToken,'first_name': response.fullName ? response.fullName.givenname : '-','last_name': response.fullName ? response.fullName.familyName : '-','device_identifier': device_identifier,device: Platform.OS
};
props.appleLogin({ values: details });
}
}
// user is authenticated
}
} catch (error) {
if (appleAuth.Error.CANCELED === error.code) {
console.log('apple-error-CANCELED',JSON.stringify(error));
} else if (appleAuth.Error.Failed === error.code) {
console.log('apple-error-Failed',error);
} else if (appleAuth.Error.NOT_HANDLED === error.code) {
console.log('apple-error-NOT_HANDLED',error);
} else {
console.log('apple-error',error);
}
}
}
代码 2
const IOSAppleLogin = async () => {
try {
// performs login request
const appleAuthRequestResponse = await appleAuth.performRequest({
requestedOperation: appleAuth.Operation.LOGIN,appleAuth.Scope.FULL_NAME]
});
console.log('appleAuthRequestResponse',device: Platform.OS
};
props.appleLogin({ values: details });
}
}
// user is authenticated
} catch (error) {
if (appleAuth.Error.CANCELED === error.code) {
console.log('apple-error-CANCELED',error);
}
}
}
解决方法
我也遇到过这种情况。在此处找到解决方案 https://github.com/invertase/react-native-apple-authentication/issues/162#issuecomment-723502035。
基本上,如果您在模拟器上使用 iOS 13,或者在真实设备上使用 iOS 14。
,当我尝试在模拟器上运行代码时,这也发生在我身上,在真实设备上尝试它会起作用。 不要忘记在 Signing & Capabilities 中为发布和调试应用添加Sign In with Apple。为此,您应该有一个 ADP 帐户。
谢谢。