【问题标题】:Flutter iOS build failed an error of pod files: Podfile is out of dateFlutter iOS build failed pod 文件错误:Podfile is out of date
【发布时间】:2020-04-09 06:50:04
【问题描述】:

我正在尝试在 ios 模拟器(ios 13)上构建我的应用程序,但构建失败并给出 pod 文件错误:Podfile is out of date

这是错误。

Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Warning: Podfile is out of date
  This can cause a mismatched version of Flutter to be embedded in your app, which may result in App Store submission rejection or crashes.
  If you have local Podfile edits you would like to keep, see https://github.com/flutter/flutter/issues/24641 for instructions.
To regenerate the Podfile, run:
  rm ios/Podfile

Warning: Podfile is out of date
  This can cause issues if your application depends on plugins that do not support iOS.
  See https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms for details.
  If you have local Podfile edits you would like to keep, see https://github.com/flutter/flutter/issues/45197 for instructions.
To regenerate the Podfile, run:
  rm ios/Podfile

Running Xcode build...
Xcode build done.                                            7,8s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    /Users/kareldebedts/developer/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.11/ios/Classes/CloudFirestorePlugin.m:155:24: error: no visible @interface for 'FIRQuery' declares the selector 'queryWhereField:arrayContainsAny:'
            query = [query queryWhereField:fieldName arrayContainsAny:value];
                     ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/kareldebedts/developer/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.11/ios/Classes/CloudFirestorePlugin.m:157:24: error: no visible @interface for 'FIRQuery' declares the selector 'queryWhereFieldPath:arrayContainsAny:'
            query = [query queryWhereFieldPath:fieldPath arrayContainsAny:value];
                     ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/kareldebedts/developer/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.11/ios/Classes/CloudFirestorePlugin.m:163:24: error: no visible @interface for 'FIRQuery' declares the selector 'queryWhereField:in:'
            query = [query queryWhereField:fieldName in:value];
                     ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/kareldebedts/developer/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.11/ios/Classes/CloudFirestorePlugin.m:165:24: error: no visible @interface for 'FIRQuery' declares the selector 'queryWhereFieldPath:in:'
            query = [query queryWhereFieldPath:fieldPath in:value];
                     ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/kareldebedts/developer/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.11/ios/Classes/CloudFirestorePlugin.m:764:16: warning: 'timestampsInSnapshotsEnabled' is deprecated [-Wdeprecated-declarations]
          settings.timestampsInSnapshotsEnabled = (bool)call.arguments[@"timestampsInSnapshotsEnabled"];
                   ^
    In module 'FirebaseFirestore' imported from /Users/kareldebedts/DRINKM8/drinkm8_git/ios/Pods/Headers/Public/Firebase/Firebase.h:31:
    /Users/kareldebedts/DRINKM8/drinkm8_git/ios/Pods/FirebaseFirestore/Firestore/Source/Public/FIRFirestoreSettings.h:69:20: note: 'timestampsInSnapshotsEnabled' has been explicitly marked deprecated here
        __attribute__((deprecated));
                       ^
    1 warning and 4 errors generated.

Could not build the application for the simulator.
Error launching application on iPhone 11 Pro Max.

我试过 rm ios/Podfile ,但终端说该命令不存在...

这是我的 pubspec yaml。

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^0.1.2
  firebase_core: ^0.4.0
  firebase_auth: ^0.11.1+12
  flutter_facebook_login: ^2.0.1
  cloud_firestore: ^0.12.7+1
  shared_preferences: ^0.5.3+4
  geolocator: ^5.1.1+1
  url_launcher: ^5.1.2
  rflutter_alert: ^1.0.3
  font_awesome_flutter: ^8.5.0
  flutter_picker: ^1.0.13
  uuid: 2.0.1
  image_picker: ^0.6.1
  path_provider: ^1.2.0
  image: ^2.1.4
  firebase_storage: ^3.0.4
  flutter_datetime_picker: ^1.2.5
  intl: ^0.15.8
  native_contact_picker: ^0.0.6
  flutter_spinkit: ^4.0.0
  transparent_image: ^1.0.0
  connectivity: ^0.4.3+7
  flare_splash_screen: ^2.1.3
  algolia: ^0.1.6+1
  http: ^0.12.0+2
  cloud_functions: ^0.4.1+6
  firebase_messaging: ^5.0.2
  avatar_glow: ^1.0.0
  google_maps_flutter: ^0.5.21+8
  geoflutterfire: ^2.0.2
  rxdart: ^0.22.2
  auto_size_text: ^2.1.0
  camera: ^0.5.4+1
  video_player: ^0.10.2+1
  story_view: ^0.11.0
  thumbnails: ^1.0.1
  image_crop: ^0.3.1
  file_picker: ^1.4.2
  pdf_viewer_plugin: ^1.0.0+2
  flutter_background_geolocation: ^1.3.2
  location_permissions: ^2.0.3
  image_downloader: ^0.19.1
  permission_handler: ^3.3.0
  firebase_database: ^3.1.0

有人知道导致问题的原因吗? 可能是因为我把模拟器升级到了IOS 13...

提前致谢!

【问题讨论】:

    标签: ios iphone xcode flutter podfile


    【解决方案1】:

    这在我更新flutter SDK时经常发生,但不要跳过更新以使其更好更容易,因为它很容易解决

    有必要修复 - 删除 Pods 文件夹的内容将解决问题,这里是如何做到这一点的过程

    1. 要彻底清理(删除所有指向链接)并创建升级到新的(卸载并再次安装),请编写以下命令

      flutter clean
      rm -Rf ios/Pods
      rm -Rf ios/.symlinks
      rm -Rf ios/Flutter/Flutter.framework
      rm -Rf ios/Flutter/Flutter.podspec
      
    2. 然后为了重现 Podfile 遵循这个命令

      rm ios/Podfile
      
    3. 你的项目终于准备好了

      flutter run
      

    【讨论】:

    • 非常感谢!每次我升级颤振时都会发生。提示:如果应用程序在构建时仍然崩溃:查找“错误”。在我的例子中,有一个包在清理完所有的 pod 后仍然无法与新的颤振版本一起运行。建议将软件包升级到最新版本。
    • 如果您在 Xcode 12 上遇到 iOS 8.0 版本错误。以上内容仍然无法帮助您。参考这个:jessesquires.com/blog/2020/07/20/…
    【解决方案2】:

    这主要发生在您升级 Flutter 应用程序时,要解决此问题,请按照以下步骤操作

    1. 转到Your_Project_Directory/ios/并删除Podfile,或者您可以通过在根项目目录中运行以下命令来完成

      rm ios/Podfile
      
    2. Run你的项目再次,这将为你创建一个新的和更新的Podfile

      flutter run
      

    【讨论】:

      【解决方案3】:

      在您的 ios 目录中使用 pod install 命令在您的项目中安装新的 pod。即使你已经有一个 Podfile 并且之前运行过 pod install 。这应该适合你。我前段时间遇到了同样的问题,这就是它的解决方法。

      【讨论】:

      • 谢谢!执行此操作时出现此错误... [!] CocoaPods 未设置项目的基本配置,因为您的项目已经具有自定义配置集。为了使 CocoaPods 集成能够正常工作,请将目标 Runner 的基本配置设置为 Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig 或在构建配置中包含 Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig (Flutter/Release.xcconfig)。
      • 这有帮助吗? guides.cocoapods.org/using/pod-install-vs-update.html 请检查.. 我不知道你为什么会收到这样的错误。如果事情开始起作用,请在 cmets 中告诉我。
      • 谢谢!更新了 pod,这是我不断收到的唯一消息:警告:Podfile 已过期这可能会导致在您的应用程序中嵌入不匹配的 Flutter 版本,这可能会导致 App Store 提交被拒绝或崩溃。如果您有想要保留的本地 Podfile 编辑,请参阅 github.com/flutter/flutter/issues/24641 以获取说明。要重新生成 Podfile,请运行:rm ios/Podfile
      • 在升级模拟器之前一切正常吗?而且我猜模拟器与构建无关..问题一定是别的..
      • 是的,但是我运行flutter upgrade的时候,更新的时候出错了。所以我完全重新安装了颤振......
      【解决方案4】:

      我不确定这是否适用于所有人,但我的问题已通过从终端运行 flutter run 得到解决。

      我只是在使用来自 vscode 的 Flutter 启动器,它一直在抛出错误。

      我已经设置了一个 Podfile,但我认为 flutter run 可能会更新它或重新实例化它?我不确定。

      我的问题是由 Flutter 更新引起的

      【讨论】:

      • 请记住,这不会向调试控制台报告
      【解决方案5】:

      MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将向 ~/.zshrc 添加配置,而不是像过去那样向 ~/.bash_profile 添加配置。

      您可以随时通过运行以下命令手动从 Bash 更改为 ZSH: chsh -s /bin/zsh 安装 Homebrew 首先,我们需要安装 Homebrew。 Homebrew 让我们可以轻松地从源代码安装和编译软件包。

      Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode 命令行工具时,请说是。

      打开终端并运行以下命令: ruby​​ -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 现在我们已经安装了 Homebrew,我们可以使用它来安装 Ruby。

      我们将使用 rbenv 来安装和管理我们的 Ruby 版本。

      为此,请在终端中运行以下命令: brew install rbenv ruby​​-build 将 rbenv 添加到 bash,以便每次打开终端时加载它 echo '如果哪个 rbenv > /dev/null;然后 eval "$(rbenv init -)"; fi' >> ~/.zshrc source ~/.zshrc

      安装 Ruby

      rbenv 安装 2.7.2 rbenv 全球 2.7.2 红宝石-v 在你的 ios 目录中使用 pod install 命令在你的项目中安装新的 pod。 cd ios pod install enjoy

      【讨论】:

        【解决方案6】:

        建议 运行后flutter clean

        pod install --verbose
        

        运行pod install --verbose 因为如果你使用cloud_firestore pod instlal 可能会下载 gRPC-Core [https://github.com/grpc/grpc.git] 大约 200MB 但由于它是 git 子模块,它最终会下载 1GB。因此,要查看运行中的进展情况

        【讨论】:

          【解决方案7】:

          以防万一,如果有人在更新 Podfile 后遇到类似于此输出的问题:

            ld: framework not found intent
              clang: error: linker command failed with exit code 1 (use -v to see invocation)
              note: Using new build system
              note: Building targets in parallel
              note: Planning build
              note: Constructing build description
          

          你可以试试这个:

          1. 转到 Xcode 选择您的目标。
          2. 转到构建设置。
          3. 搜索报错中显示的包名。 e. G。 : 框架不是 发现意图。
          4. 您会看到有这样的部分: "Linking"->"Other linker flags" ,然后点击这里的粗体部分 行。
          5. 它将打开一个对话框,您可以在其中删除未找到的框架。
          6. 删除框架名称时,同时删除 “-framework”标签。

          这可能与仅适用于 Android 的软件包有关。

          【讨论】:

            【解决方案8】:

            MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将向 ~/.zshrc 添加配置,而不是像过去那样向 ~/.bash_profile 添加配置。

            您可以随时通过运行以下命令手动从 Bash 更改为 ZSH: chsh -s /bin/zsh 安装 Homebrew 首先,我们需要安装 Homebrew。 Homebrew 让我们可以轻松地从源代码安装和编译软件包。

            Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode 命令行工具时,请说是。

            打开终端并运行以下命令: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"现在我们已经安装了 Homebrew,我们可以使用它来安装 Ruby。

            我们将使用 rbenv 来安装和管理我们的 Ruby 版本。

            为此,请在终端中运行以下命令:

            brew install rbenv ruby​​-build

            将 rbenv 添加到 bash,以便每次打开终端时都会加载它

            echo '如果哪个 rbenv > /dev/null;然后 eval "$(rbenv init -)"; fi' >> ~/.zshrc 源码~/.zshrc

            安装 Ruby

            rbenv 安装 2.7.2 rbenv 全球 2.7.2 红宝石-v 就这样 在您的 ios 目录中使用 pod install 命令在您的项目中安装新的 pod。 光盘 吊舱安装 享受

            【讨论】:

              【解决方案9】:

              转到 ios 文件夹并尝试 pod install --repo-update

              【讨论】:

              • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
              【解决方案10】:

              如果其他解决方案 (sudo arch -x86_64 gem install ffi) 不适合您,请尝试以下解决方案:

              gem install --user-install ffi -- --enable-libffi-alloc
              

              之后,再次运行 pod install 或任何您尝试执行的操作,但不要在其前面加上 arch -x86_64

              它对我来说没有问题,这样我也可以避免采用英特尔仿真 (Rosetta 2) 的方式。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-12-07
                • 2022-11-05
                • 2020-08-04
                • 2018-08-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多