Получение существующего приложения с аутентификацией по отпечатку пальца для работы с iPhone X FaceId

У меня есть приложение, которое уже разработано и доступно в магазине. Он работает хорошо и имеет аутентификацию по отпечатку пальца. Теперь, когда Apple сделала обязательной поддержку iPhone X, я выпущу еще одно обновление приложения.

Но я хочу понять, что будет, если установить уже представленную версию приложения на iPhone X..?

я это читал-

  1. Приложение выдаст предупреждение о совместимости с сообщением This app was designed to use Touch ID and may not fully support FaceID, но оно исчезнет, ​​если мы вставим ключ NSFaceIDUsageDescription в plist.

  2. Я также читал, что приложение будет аварийно завершать работу при сборке с использованием iOS 11 SDk (без ключа NSFaceIDUsageDescription в plist).

Вот мой вопрос: что, если приложение создано с использованием iOS 8 и установлено в iOS 11, произойдет ли сбой? если нет, как будет точное поведение ..? Я тестировал в симуляторе, и приложение не зависало, но у меня нет под рукой iPhone X, и я не могу перепроверить то же самое на реальном устройстве.

ПРИМЕЧАНИЕ. Этот сбой чаще наблюдается на устройстве, а не на симуляторе.

  1. Насколько важно иметь слово FaceId в приложении, работающем на iPhone X. Что, если я буду использовать общие термины, такие как «Биометрическая аутентификация» вместо touchId и FaceId. Будет ли приложение по-прежнему в порядке и не будет ли оно отклонено?

Любая помощь или руководство будут по-настоящему оценены!


person Shailesh    schedule 15.08.2018    source источник


Ответы (2)


Вы правы в том, что вам нужен ключ NSFaceIDUsageDescription в вашем plist для правильной поддержки Face ID.

Если вы создали приложение с помощью Xcode 9 для iOS 11 SDK, даже если вы установили цель для iOS 8, вам необходимо включить этот ключ для поддержки iPhone X.

Тем не менее, я не понимаю, как это может привести к сбою. Тот же код, который вы используете для Touch ID, также поддерживает Face ID.

person Josh Hrach    schedule 15.08.2018
comment
@Shailesh Я не знаю на 100%, но я бы сказал, что вы можете обойтись биометрической аутентификацией. - person Josh Hrach; 17.08.2018

Я использую это для обработки FaceID или TouchID

if (@available(iOS 11.0, *)) {
            if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
                if (myContext.biometryType == LABiometryTypeTouchID) {
                    SwitchItem *touchIdItem = [[SwitchItem alloc] init];
                    touchIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_TOUCHID", nil);
                    touchIdItem.active = [[[Global instance] objectInKey:KEY_TOUCHID_ENABLED] boolValue];
                    [self.dataSource addObject:touchIdItem];
                } else if (myContext.biometryType == LABiometryTypeFaceID) {
                    SwitchItem *faceIdItem = [[SwitchItem alloc] init];
                    faceIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_FACEID", nil);
                    faceIdItem.active = [[[Global instance] objectInKey:KEY_FACEID_ENABLED] boolValue];
                    [self.dataSource addObject:faceIdItem];
                }
            }
        } else {
            if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
                SwitchItem *touchIdItem = [[SwitchItem alloc] init];
                touchIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_TOUCHID", nil);
                touchIdItem.active = [[[Global instance] objectInKey:KEY_TOUCHID_ENABLED] boolValue];
                [self.dataSource addObject:touchIdItem];
            }
        }

Вы должны оценить версию iOS, после чего можно предположить, есть ли у гаджета touchID или faceID.

person amedinam    schedule 15.08.2018