Симулятор iOS вылетает при запросе разрешения микрофона - PullRequest
0 голосов
/ 26 апреля 2019

Моя среда:

  • missions_handler 3.0.0
  • Флаттер v1.2.1
  • OSX High Sierra 10.13.6
  • Xcode version 10.1.

Мое приложение падает, когда я запрашиваю разрешение на микрофон в симуляторе iOS.

PermissionStatus mic = await PermissionHandler()
    .checkPermissionStatus(PermissionGroup.microphone);
print('microphone permission? ${mic.toString()}');
try {
    if (mic != PermissionStatus.granted) {
        await PermissionHandler().requestPermissions([PermissionGroup.microphone]);
    }
} catch (e) {
    print(e);
}

Ошибка не выброшена или перехвачена, но в консоли отладки флаттера я вижу:

flutter: microphone permission? PermissionStatus.unknown
Lost connection to device.

Это означает, что checkPermissionStatus() вернул unknown. Но потом, когда я запрашиваю разрешение, приложение вылетает. Я не смог попробовать это на реальном iPhone. Все отлично работает на симуляторе Android.

Я видел, что в Xcode 10.1 были проблемы с микрофоном:

Что я пробовал

  • Свежая сборка с flutter clean
  • Изменение входа микрофона симулятора в Аппаратное обеспечение> Аудиовход

Я мог бы попытаться перейти на Xcode 10.2, но сначала мне нужно было получить mojave. Попытка избежать этого, если это возможно, поскольку это может даже не решить проблему. Я также могу попробовать использовать настоящее устройство iPhone вместо симулятора. Хотелось бы, чтобы симулятор не грохнулся.

Кто-нибудь может предоставить разрешение микрофона в симуляторе Xcode 10.1 / 10.2, используя permission_handler: 3.0.0? А как насчет другого плагина разрешения флаттера?

1 Ответ

2 голосов
/ 26 апреля 2019

Убедитесь, что вы добавили правильные записи в файл Info.plist (для проектов Flutter этот файл находится в папке ios/Runner/).

Чтобы получить доступ к микрофону, вам необходимо добавить следующие строки между тегами <dict>:

<key>NSMicrophoneUsageDescription</key>
<string>this application needs access to the microphone</string>

Более подробную информацию можно найти здесь .

И полный пример Info.plist можно найти здесь .

...