Реагировать на то, что родной логин Apple застрял на экране ввода пароля в IOS?

3

В IOS после ввода пароля показывает загрузку и после этого ничего не происходит. Нет логов консоли? В android работает нормально.

Я реализовал V2 для реагирования на родную аутентификацию Apple https://github.com/invertase/react-native-apple-authentication

Изображение 32451 Пробовал 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);
            }
        }
    }
Теги:
react-native sign-in-with-apple apple-login
CodeFix

2 ответа

0
Лучший ответ

Это случилось и со мной. Нашел решение здесь https://github.com/invertase/react-native-apple-authentication/issues/162#issuecomment-723502035 .

По сути, просто используйте iOS 13, если вы используете эмулятор, или iOS 14 на реальном устройстве.

Поделиться
Источник
0

Это также произошло со мной, когда я пытаюсь запустить код на симуляторе. Попробуйте это на реальном устройстве, это сработает. Не забудьте добавить вход через 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. введите описание изображения здесь Я не уверен, в чем может быть причина этой ошибки. Я думал, что потенциально может быть что-то не так...

CodeFix
Цитата дня

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

Эндрю Таненбаум