Flutter iOS build failed an error of pod files: Podfile is out of date
Flutter iOS build failed an error of pod files: Podfile is out of date
我正在尝试在 ios 模拟器(ios 13)上构建我的应用程序,但构建失败并给出 pod 文件错误:Podfile 已过期
这是错误。
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 目录中使用 pod install
命令在您的项目中安装新的 pods。即使您之前已经安装了 Podfile 和 运行 pod。这应该适合你。我 运行 前段时间遇到了同样的问题,这就是解决方法。
这主要发生在升级 flutter 应用程序时,请按照以下步骤解决此问题
转到Your_Project_Directory/ios/
并删除Podfile
或者您可以通过运行根项目目录中的以下命令
来完成
rm ios/Podfile
Run
您的项目,这将为您创建一个新的和更新的 Podfile
flutter run
我不确定这是否适用于所有人,但我的问题已由 运行 flutter run
从终端解决。
我刚刚使用了 vscode 的 Flutter 启动器,它一直在抛出错误。
我已经设置了一个 Podfile,但我认为 flutter run
可能更新或重新实例化了它?我不确定。
我的问题是由 Flutter 更新引起的
我更新flutter SDK的时候经常会出现这种情况,但是不要跳过更新,让它变得更好更容易,因为它很容易解决
有必要修复 - 删除 Pods 文件夹的内容将解决问题,下面是如何执行此操作的过程
要完全清理(删除所有指向链接的点)并创建升级到新的(卸载并再次安装),请编写以下命令
flutter clean
rm -Rf ios/Pods
rm -Rf ios/.symlinks
rm -Rf ios/Flutter/Flutter.framework
rm -Rf ios/Flutter/Flutter.podspec
然后按照此命令重现 Podfile
rm ios/Podfile
您的项目终于可以开始了
flutter run
建议
在 运行宁 flutter clean
之后
pod install --verbose
运行 pod install --verbose
因为如果你使用 cloud_firestore
pod 安装可能会下载 gRPC-Core [https://github.com/grpc/grpc .git] 这是 ~200MB 但因为它是 git 子模块,它最终将下载 1GB。所以要查看正在发生的事情的进展 运行
MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将把配置添加到 ~/.zshrc 而不是我们过去使用的 ~/.bash_profile。
您可以随时通过 运行 执行以下命令手动从 Bash 更改为 ZSH:
chsh -s /bin/zsh
正在安装 Homebrew
首先,我们需要安装 Homebrew。 Homebrew 允许我们从源代码轻松安装和编译软件包。
Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode CommandLine Tools 时,请说是。
打开终端并运行输入以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 现在我们已经安装了 Homebrew,我们可以用它来安装 Ruby.
我们将使用 rbenv 来安装和管理我们的 Ruby 版本。
为此,运行 在您的终端中执行以下命令:
brew 安装 rbenv ruby-build
将 rbenv 添加到 bash 以便在您每次打开终端时加载它
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc
来源 ~/.zshrc
安装Ruby
rbenv 安装 2.7.2
rbenv 全球 2.7.2
ruby-v
就这样
在 ios 目录中使用 pod install 命令在项目中安装新的 pods。
CD ios
吊舱安装
享受
MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将把配置添加到 ~/.zshrc 而不是我们过去使用的 ~/.bash_profile。
您可以随时通过 运行 执行以下命令手动从 Bash 更改为 ZSH: chsh -s /bin/zsh 安装 Homebrew 首先,我们需要安装 Homebrew。 Homebrew 允许我们从源代码轻松安装和编译软件包。
Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode CommandLine Tools 时,请说是。
打开终端并运行执行以下命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
现在我们已经安装了 Homebrew,我们可以用它来安装 Ruby.
我们将使用 rbenv 来安装和管理我们的 Ruby 版本。
为此,运行 在您的终端中执行以下命令:
brew 安装 rbenv ruby-build
将 rbenv 添加到 bash 以便在您每次打开终端时加载它
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc source ~/.zshrc
安装Ruby
rbenv 安装 2.7.2
rbenv 全球 2.7.2
ruby-v
仅此而已 在您的 ios 目录中使用 pod install 命令在您的项目中安装新的 pods。 cd ios pod install enjoy
以防万一,如果有人在更新 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
你可以试试这个:
- 转到 Xcode Select 你的目标。
- 转到构建设置。
- 搜索错误中显示的包名称。 e. G。 : 框架没有
找到意图。
- 您会看到有一个部分如下:
“Linking”->“Other linker flags”,然后点这个加粗的部分
行。
- 它将打开一个对话框,您可以在其中删除未找到的框架。
- 删除框架名称时,也删除
“-框架”标签。
这可能与仅适用于 Android 的软件包有关。
转到 ios 文件夹并尝试 pod install --repo-update
如果其他解决方案 (sudo arch -x86_64 gem install ffi
) 对您不起作用,请尝试以下解决方案:
gem install --user-install ffi -- --enable-libffi-alloc
在那之后,运行 pod install
或您再次尝试做的任何事情,但没有前缀 arch -x86_64
。
它对我来说没有问题,这样我也可以避免使用英特尔仿真 (Rosetta 2) 方式。
我正在尝试在 ios 模拟器(ios 13)上构建我的应用程序,但构建失败并给出 pod 文件错误:Podfile 已过期
这是错误。
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 目录中使用 pod install
命令在您的项目中安装新的 pods。即使您之前已经安装了 Podfile 和 运行 pod。这应该适合你。我 运行 前段时间遇到了同样的问题,这就是解决方法。
这主要发生在升级 flutter 应用程序时,请按照以下步骤解决此问题
转到
来完成Your_Project_Directory/ios/
并删除Podfile
或者您可以通过运行根项目目录中的以下命令rm ios/Podfile
Run
您的项目,这将为您创建一个新的和更新的Podfile
flutter run
我不确定这是否适用于所有人,但我的问题已由 运行 flutter run
从终端解决。
我刚刚使用了 vscode 的 Flutter 启动器,它一直在抛出错误。
我已经设置了一个 Podfile,但我认为 flutter run
可能更新或重新实例化了它?我不确定。
我的问题是由 Flutter 更新引起的
我更新flutter SDK的时候经常会出现这种情况,但是不要跳过更新,让它变得更好更容易,因为它很容易解决
有必要修复 - 删除 Pods 文件夹的内容将解决问题,下面是如何执行此操作的过程
要完全清理(删除所有指向链接的点)并创建升级到新的(卸载并再次安装),请编写以下命令
flutter clean rm -Rf ios/Pods rm -Rf ios/.symlinks rm -Rf ios/Flutter/Flutter.framework rm -Rf ios/Flutter/Flutter.podspec
然后按照此命令重现 Podfile
rm ios/Podfile
您的项目终于可以开始了
flutter run
建议
在 运行宁 flutter clean
pod install --verbose
运行 pod install --verbose
因为如果你使用 cloud_firestore
pod 安装可能会下载 gRPC-Core [https://github.com/grpc/grpc .git] 这是 ~200MB 但因为它是 git 子模块,它最终将下载 1GB。所以要查看正在发生的事情的进展 运行
MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将把配置添加到 ~/.zshrc 而不是我们过去使用的 ~/.bash_profile。
您可以随时通过 运行 执行以下命令手动从 Bash 更改为 ZSH: chsh -s /bin/zsh 正在安装 Homebrew 首先,我们需要安装 Homebrew。 Homebrew 允许我们从源代码轻松安装和编译软件包。
Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode CommandLine Tools 时,请说是。
打开终端并运行输入以下命令: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 现在我们已经安装了 Homebrew,我们可以用它来安装 Ruby.
我们将使用 rbenv 来安装和管理我们的 Ruby 版本。
为此,运行 在您的终端中执行以下命令:
brew 安装 rbenv ruby-build
将 rbenv 添加到 bash 以便在您每次打开终端时加载它
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc 来源 ~/.zshrc
安装Ruby
rbenv 安装 2.7.2 rbenv 全球 2.7.2 ruby-v 就这样 在 ios 目录中使用 pod install 命令在项目中安装新的 pods。 CD ios 吊舱安装 享受
MacOS Catalina 已将默认终端从 Bash 更改为 ZSH。因此,我们将把配置添加到 ~/.zshrc 而不是我们过去使用的 ~/.bash_profile。
您可以随时通过 运行 执行以下命令手动从 Bash 更改为 ZSH: chsh -s /bin/zsh 安装 Homebrew 首先,我们需要安装 Homebrew。 Homebrew 允许我们从源代码轻松安装和编译软件包。
Homebrew 带有一个非常简单的安装脚本。当它要求您安装 XCode CommandLine Tools 时,请说是。
打开终端并运行执行以下命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 现在我们已经安装了 Homebrew,我们可以用它来安装 Ruby.
我们将使用 rbenv 来安装和管理我们的 Ruby 版本。
为此,运行 在您的终端中执行以下命令: brew 安装 rbenv ruby-build 将 rbenv 添加到 bash 以便在您每次打开终端时加载它 echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc source ~/.zshrc
安装Ruby
rbenv 安装 2.7.2 rbenv 全球 2.7.2 ruby-v 仅此而已 在您的 ios 目录中使用 pod install 命令在您的项目中安装新的 pods。 cd ios pod install enjoy
以防万一,如果有人在更新 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
你可以试试这个:
- 转到 Xcode Select 你的目标。
- 转到构建设置。
- 搜索错误中显示的包名称。 e. G。 : 框架没有 找到意图。
- 您会看到有一个部分如下: “Linking”->“Other linker flags”,然后点这个加粗的部分 行。
- 它将打开一个对话框,您可以在其中删除未找到的框架。
- 删除框架名称时,也删除 “-框架”标签。
这可能与仅适用于 Android 的软件包有关。
转到 ios 文件夹并尝试 pod install --repo-update
如果其他解决方案 (sudo arch -x86_64 gem install ffi
) 对您不起作用,请尝试以下解决方案:
gem install --user-install ffi -- --enable-libffi-alloc
在那之后,运行 pod install
或您再次尝试做的任何事情,但没有前缀 arch -x86_64
。
它对我来说没有问题,这样我也可以避免使用英特尔仿真 (Rosetta 2) 方式。