Реагировать на то, что родной логин Apple застрял на экране ввода пароля в IOS?
В IOS после ввода пароля показывает загрузку и после этого ничего не происходит. Нет логов консоли? В android работает нормально.
Я реализовал V2 для реагирования на родную аутентификацию Apple 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,
requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME]
});
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 ответа
Это случилось и со мной. Нашел решение здесь https://github.com/invertase/react-native-apple-authentication/issues/162#issuecomment-723502035 .
По сути, просто используйте iOS 13, если вы используете эмулятор, или iOS 14 на реальном устройстве.
Это также произошло со мной, когда я пытаюсь запустить код на симуляторе. Попробуйте это на реальном устройстве, это сработает. Не забудьте добавить вход через Apple как для выпуска, так и для отладки приложения в разделе «Вход и возможности». Для этого у вас должна быть учетная запись ADP.
Спасибо.
Другие вопросы
- реагировать на родной: обновления состояния не влияют на преобразование1 ответ
Я хочу иметь компонент, который становится больше при нажатии и становится меньше при отпускании. Я пытаюсь использоватьonPressIn а такжеonPressOut обработчики для обновления состояния, которое обновляет значение преобразования:const ExampleScreen = () => { const [pressed, setPressed] = useStat...
- Стилизация React Native FlatList1 ответ
Я пытаюсь разместить элементы FlatList рядом с HeaderComponent списка. Я хочу, чтобы комнаты начинались рядом с комнатой создания. Вот изображение того, как это выглядит [1]: https://i.stack.imgur.com/qyZZP.png Вот код для списка комнат:<FlatList ListHeaderComponent={<Room create />} ...
- undefined не является объектом (оценка _this props.navigation.navigate), когда я пытаюсь перейти после проверки1 ответ
когда я пытаюсь перейти после проверки к данным списка, он отображается с ошибкой в качестве моего заголовка? пожалуйста, помогите я новичок в реакции родной. многие ценят от меня спасибо, ребята Кстати, мой код довольно странный, и я рекомендую его повысить? для лучшей производительности и простоты...
- Не удается найти входной файл сборки: как изменить путь к файлу [xcode]1 ответ
Я использую нативную реакцию для отображения веб-просмотра моей страницы на android и ios. Я изменил имя пакета в android и мой файл app.json на новое имя. С андроидом все работает нормально. Теперь, когда я пытаюсь создать проект в ios с помощью xcode, у меня возникает ошибка Build input file canno...
- Почему значение переменной len не меняется в транзакции db?1 ответ
//this is constructor of my code constructor(props) { super(props); this.state = { textValue:this.getFavoritesLength(), }; } // этот код sqlite db.transaction выполняет префект, но не меняет значение var len, он всегда возвращает 0, а я изменяю значение le...
- Нативный ответ Largr FlatList не загружает все элементы1 ответ
Это мой код на Mainscreen.js:import React, {useState, useEffect} from 'react'; import { View, Text, StyleSheet, FlatList, Image, TouchableOpacity, Pressable, ActivityIndicator, } from 'react-native'; import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'; import {faPre...
- Невозможно загрузить @ tensorflow-models / voice-commands1 ответ
Я пытаюсь загрузить речевые команды модели tensorflow.js в свое приложение response-native. Но после долгих попыток я не могу загрузить модель. Я получаю эту ошибкуError: Unable to resolve module `fs` from `node_modules\@tensorflow-models\speech-commands\dist\browser_fft_utils.js`: fs could not be f...
- Как использовать модуль, не связанный с UI, в Swift iOS1 ответ
Я супер новичок в react-native, поэтому, пожалуйста, не беспокойтесь :) Скажем, мне нужно отобразитьreact-native экран в моемiOS swift приложение, официальный способ - использоватьRCTRootView и мы предоставим один из его конструкторов, т.е.RCTRootView(bridge:moduleName:initialProperties:) с конкретн...
- Не удается обновить свойство дочернего компонента из родительского компонента в React Native2 ответ
Я новичок в React Native для мобильной разработки. Я использую Expo. Я не могу управлять государством. у меня естьSearchTextBox компонент, я хочу установить свойство текста из родительского компонента, однако я не мог управлять им с помощьюuseState .import React, { useState, useEffect } from "r...
- Значение JSON '<null>' типа NSNull не может быть преобразовано в NSString IOS Simulator1 ответ
Я получаю следующий экран с ошибкой каждый раз, когда прокручиваю или перемещаюсь по приложению, когда я перезагружаю свое приложение React Native в iOS Simulator. введите описание изображения здесь Я не уверен, в чем может быть причина этой ошибки. Я думал, что потенциально может быть что-то не так...

"Завидую тестировщикам: все хотят с ними дружить."