модуль audio_session не найден

Я пытаюсь создать существующий проект флаттера на новом Mac с чипом M1. Я столкнулся со следующей ошибкой в ​​связи с отсутствием модуля audio_session.

Launching lib/main.dart on iPhone 12 in debug mode...
Running Xcode build...                                                  
 └─Compiling, linking and signing...                        340ms
Xcode build done.                                            4.7s
Failed to build iOS app
Error output from Xcode build:
↳
    objc[7636]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x1f2fe0188) and ?? (0x117e8c2b8). One of the two will be used. Which one is undefined.
    objc[7636]: Class AMSupportURLSession is implemented in both ?? (0x1f2fe01d8) and ?? (0x117e8c308). One of the two will be used. Which one is undefined.
    ** BUILD FAILED **


Xcode's output:
↳
    /Users/user/Projects/myproject/ios/Runner/GeneratedPluginRegistrant.m:10:9: fatal error: module 'audio_session' not found
    @import audio_session;
     ~~~~~~~^~~~~~~~~~~~~
    1 error generated.
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

Could not build the application for the simulator.
Error launching application on iPhone 12.

Есть предположения?


person George Alex    schedule 18.03.2021    source источник
comment
убедитесь, что вы добавили audio_session пакет в pubspec.yml файл. после этого запустите команду flutter pub get и flutter run   -  person Ranjit    schedule 18.03.2021
comment
Я вообще не использую этот пакет. Я думаю, что это как-то зависимость.   -  person George Alex    schedule 18.03.2021
comment
Я очистил pod-файл и выяснил, что «флаттер-бег» генерирует более сложный Podfile. В любом случае генерируется другая ошибка. Ошибка: Чтобы настроить CocoaPods для ARM macOS, выполните команду: arch -x86_64 sudo gem install ffi. Даже если я запустил указанную команду, возникнет та же ошибка.   -  person George Alex    schedule 18.03.2021
comment
Столкнулся с той же проблемой. Я использую just_audio, который зависит от audio_session.   -  person kohjakob    schedule 18.03.2021
comment
Хорошо, я думаю, моя проблема заключалась в открытии ios/Runner.xcodeproj вместо ios/Runner.xcworkspace. Подробнее об этом здесь   -  person kohjakob    schedule 18.03.2021


Ответы (2)


Наконец-то нашел решение.

Каким-то образом, если бы я пошел в папку iOS моего проекта flutter и набрал pod init; pod install 'был сгенерирован базовый подфайл (это означает, что в нем указана только платформа).

Я где-то нашел сообщение, в котором предлагалось удалить все в папке iOS о pod и запустить flutter run в проекте. Запуск «flutter run» в папке проекта (который также включает «pod install») сгенерировал очень подробный Podfile, но на этот раз я столкнулся с другой ошибкой в ​​отношении платформы (перечисленной ниже).

Error output from CocoaPods:
↳

    [!] Automatically assigning platform `iOS` with version `12.0` on target
    `Runner` because no platform was specified. Please specify a platform for
    this target in your Podfile. See
    `https://guides.cocoapods.org/syntax/podfile.html#platform`.

Error: To set up CocoaPods for ARM macOS, run:
  arch -x86_64 sudo gem install ffi

Я попытался выполнить указанную выше команду, но произошла та же ошибка.

Затем я нашел здесь ответ Запуск Cocoapods на Apple Silicon (M1), что аналогично официальной документации https://github.com/flutter/flutter/wiki/Developing-with-Flutter-on-Apple-Silicon.

Тем не менее, ответ от переполнения стека не работал для меня, пока я не выполнил следующие шаги:

  1. Открыть поиск - ›Утилиты
  2. Щелкните правой кнопкой мыши Терминал - ›Получить информацию
  3. Установите флажок "Открыть с помощью Rosetta"
  4. Откройте новый терминал и введите gem uninstall cocoapods
  5. sudo gem установить cocoapods
  6. gem uninstall ffi
  7. arch -x86_64 sudo gem install ffi

Я надеюсь, что это будет полезно для кого-то еще.

person George Alex    schedule 18.03.2021

Вам следует

1. открыть Runner.xcworkspace в xcode, а не Runner.xcodeproj

2. все идет хорошо

person capdev    schedule 14.05.2021
comment
В моем случае я использовал терминал для сборки, запустив flutter run. Я уже опубликовал ответ ниже. - person George Alex; 16.05.2021
comment
хорошо, у меня такой же вопрос на днях, и я открываю Runner.xcworkspace в xcode - person capdev; 16.05.2021