找不到模块 'audio_session'

module 'audio_session' not found

我尝试在带有 M1 芯片的新 Mac 上构建现有的 flutter 项目。 关于缺少 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.

有什么想法吗?

终于找到了解决办法。

不知何故,如果我转到我的 flutter 项目的 iOS 文件夹并键入 'pod init; pod install',就会生成一个基本的 Podfile(这意味着它只指定了平台)。

我在某处发现了一个 post 建议删除 iOS 文件夹中关于 pod 的所有内容,并在项目中 运行 flutter 运行。 运行 '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

我尝试按照上面显示的命令 运行 的建议进行操作,但出现了同样的错误。

然后,我在这里找到了答案 that is similar with the official documentation https://github.com/flutter/flutter/wiki/Developing-with-Flutter-on-Apple-Silicon

即便如此,在我执行以下步骤之前,堆栈溢出的答案对我来说并没有直接起作用:

  1. 打开取景器 -> 实用程序
  2. 右键单击终端 -> 获取信息
  3. 勾选'Open with Rosetta'
  4. 打开一个新的终端并输入'gem uninstall cocoapods'
  5. sudo gem 安装 cocoapods
  6. gem卸载ffi
  7. arch -x86_64 sudo gem 安装 ffi

我希望这对其他人有用。

你应该

1。在 xcode 中打开“Runner.xcworkspace”,而不是“Runner.xcodeproj”

2。一切顺利

2020 年 11 月 18 日。M1,macOS 蒙特雷。

与 audio_session 有同样的问题,但仅在 iPhone 15 模拟器中。

  • 在 iOS 下载以前的版本。
  • 运行 没有任何其他技巧。

我是运行flutter clean.

后构建成功
flutter clean
flutter pub get
flutter build ios

对我有用。