Пока что я видел только временное исправление. У меня была такая же проблема в течение нескольких дней, и я смог ее исправить благодаря
Мишель Комин Эскуде
кто предоставил решение здесь ->
https://github.com/expo/expo/issues/3540
Решение
Продолжайте использовать Expo SDK 32.
Перейдите в консоль разработчика Google и создайте идентификатор клиента Android Oauth2 и идентификатор клиента iOS Oauth2, как указано в документации SDK 31 для входа в Google (убедитесь, что имя пакета host.exp.exponent
).
Используйте идентификатор клиента Android и идентификатор клиента iOS следующим образом:
import { Platform } from 'react-native';
export const isAndroid = () => Platform.OS === 'android';
const result = await Google.logInAsync({
clientId: isAndroid() ? '<YOUR_ANDROID_CLIENT_ID>' : '<YOUR_IOS_CLIENT_ID>',
});
Объяснение
Основная проблема, с которой я столкнулся, заключается в том, что, хотя в новой документации указано следующее:
const clientId = '<YOUR_WEB_CLIENT_ID>';
Правда заключается в том, что внутренне запрос вызывается из приложения Expo, и вы можете увидеть это, когда развернете детали запроса на странице ошибок:
Как видите, он добавляет имя пакета host.exp.exponent.
В любом случае, это будет работать, только когда вы находитесь в разработке или в приложении Expo . Если вы создаете отдельное приложение, вам нужно использовать Google Sign-In, и это совершенно другая битва.