CocoaPods 未安装或未处于有效状态

Posted

技术标签:

【中文标题】CocoaPods 未安装或未处于有效状态【英文标题】:CocoaPods not installed or not in valid state 【发布时间】:2020-10-17 00:11:37 【问题描述】:
Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Warning: CocoaPods is installed but broken. Skipping pod install.
  You appear to have CocoaPods installed but it is not working.
  This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
  This can usually be fixed by re-installing CocoaPods. For more info, see https://github.com/flutter/flutter/issues/14293.
To re-install:
  sudo gem install cocoapods

CocoaPods not installed or not in valid state.
Error launching application on iPhone 11 Pro Max.

【问题讨论】:

您是否尝试过从错误消息sudo gem install cocoapods运行命令 尝试相同的命令 sudo gem install cocoapods 仍然有同样的问题, flutter doctor 您似乎安装了 CocoaPods,但它无法正常工作。如果安装 CocoaPods 的 Ruby 版本与用于调用它的版本不同,就会发生这种情况。 【参考方案1】:

如果您使用 Visual Studio Code 进行 Flutter 开发,该问题可能与 Resolving shell environment fails 有关:

很多时候,当从 UI(Spotlight、Dock 等)运行时,Visual Studio Code 无法按时加载 shell 环境变量(无论您使用哪个 shell - bashzsh 等)。因此,PATH 和其他环境变量未(正确)加载,这可能导致“CocoaPods not installed or not in valid state”错误。

一种解决方法是从 Terminal 运行 Visual Studio Code(而不是从 UI 启动它),然后像往常一样继续进行 MacOS/ios 编译,即 p>

open -a "Visual Studio Code"

(或者只是 code,如果您遵循此 guide 并将 Visual Studio Code 添加到 PATH 环境变量)

❗️❗️❗️ 无需重新安装 CocoaPods/Flutter 插件❗️❗️❗️

【讨论】:

【参考方案2】:

卸载并安装可可豆荚后,问题未得到解决。进入您的 ios 文件夹,删除 podfile.lock 并在 ios 文件夹中运行 pod install。然后完全退出并关闭您的编辑器并重新启动它。然后尝试再次运行该应用程序。

【讨论】:

【参考方案3】:

在终端导航到您的项目根目录并输入:

cd ios

pod install

注意:确保在尝试运行应用程序之前重建您的项目(在 Xcode 中)。

如果这不起作用,请尝试brew install cocoapodssudo gem install cocoapods

【讨论】:

【参考方案4】:

使用brew安装cocoapods

    sudo gem uninstall cocoapods brew install cocoapods brew link --overwrite cocoapods

如果需要取消链接并重新链接brew unlink cocoapods && brew link cocoapods

【讨论】:

【参考方案5】:

这通常是由于 Visual Studio 或 IntelliJ 无法找到路径或关联的插件或扩展。

解决办法如下:

    sudo gem 卸载 cocoapods && sudo gem 安装 cocoapods 重启 IDE 或编辑器

如果不完全关闭项目,最后一步应该可以解决问题

【讨论】:

是的....我运行了 CleanMyMac X,但之后没有重新启动 IDE。重新启动 IDE 似乎有效。 只需重新启动我的 IDE 即可为我修复它。 谢谢。只需重新启动 IDE 对我有用【参考方案6】:

我遇到了类似的问题。我只是做了以下事情。

    flutter clean flutter pub get 重新加载 VSCode flutter run

【讨论】:

【参考方案7】:

尝试这样做,

sudo gem install -n /usr/local/bin cocoapods

然后检查,

颤抖的医生

【讨论】:

【参考方案8】:

我有同样的问题,我可以在 xcode 中运行,但不能在 vscode 中运行。 以下对我有用。

    扑干净 重启 vscode

【讨论】:

【参考方案9】:

因此,经过数周和数周的努力解决这个问题后,这对我有用,因为 Ruby gem 源已过时(如果您在尝试安装 Cocoapods 时遇到与 gem 源相关的错误,您可能有同样的问题):

    确保 Cocoapods 已通过以下方式完全移除:gem list --local | grep cocoapods | awk 'print $1' | xargs sudo gem uninstall

    使用 gem sources -l 列出您当前的 gem 来源

    使用gem sources --remove URL_HERE 删除任何导致问题的当前源,例如gem sources --remove https://rubygems.org/

    改为添加此镜像gem sources -a https://gems.ruby-china.com/

    如果在 Mac OS X 10.11 之前的 Mac 上安装 Cocoapods:sudo gem install cocoapods,如果更新,请使用:sudo gem install -n /usr/local/bin cocoapods

就是这样!非常感谢https://www.programmersought.com/article/10015547501/

【讨论】:

【参考方案10】:

我在这里花了大约一个小时尝试一切。

最后,我发现在 Mac 上,您必须从顶部菜单中退出 VS 代码,而不仅仅是关闭打开的窗口。

希望它可以避免一些人的挫败感..

【讨论】:

正确,几乎半天干净的广告得到...(:【参考方案11】:

对我来说;重新安装 ruby​​ 和 cocoapods

rvm install ruby --latest

sudo gem install cocoapods --pre

【讨论】:

【参考方案12】:

在将我的 Mac 从旧版本升级到 macOS Catalina 10.15.7 后,我遇到了同样的问题。这失败了。

flutter doctor -v

命令。我尝试了很多解决方案,但没有任何效果。最后,我通过打开android studio并接受文件访问来解决。之后

运行flutter doctor -v 命令,它成功了。

【讨论】:

【参考方案13】:

我在 macOS 上使用 brew,以下步骤帮助了我 -

    启动 Xcode 并关闭(这是因为 Xcode 可能会自行更新) 酿造更新 酿造升级 flutter 升级(如果有很长的差距或有稳定的更新可用,则可选) sudo gem 更新

【讨论】:

【参考方案14】:

Cocoapods 最新版本依赖于 Ruby 的新版本,它不能很好地与 macOS mojave 配合使用。您所要做的就是安装较低版本的 cocoapods。

sudo gem install cocoapods -v 1.8.4

试试看

【讨论】:

【参考方案15】:

遇到了类似的问题。以下是绕过它的方法。

    卸载 cocoapods,之前提到过,但 gem uninstall cocoapods 以防万一。此外,cocoapods troubleshooting page 与look into 有几个步骤。

选项 2.A - 如果您需要系统 ruby​​ 2.6,在 mac os 10.15 中,您可以使用 sudo gem install cocoapods -v 1.8.4 安装旧版本的 cocoapods 来源:https://apple.stackexchange.com/a/384384

选项 2.B - 如果可以,请安装 rbenv,比如 ruby​​ 2.7.2,设置为 rbenv global 2.7.2,然后获取最新版本的 cocoapods gem install cocoapods

【讨论】:

【参考方案16】:

我在使用 Android Studio 时遇到了这个问题,因此我尝试了所有使用 gem 和 cocoapods 的操作,但都没有帮助。我使用 Android Studio 设置修复了它:File -> Invalidate Caches / Restart

【讨论】:

【参考方案17】:

我可以通过关闭 Android Studio 并重新打开它来解决此问题。 ?‍♂️

【讨论】:

【参考方案18】:

卸载现有的 cocoapods,如果有的话,然后重新安装

有两种方法可以使用homebrewgem 安装cocoapods。

如果您使用 gem 安装 cocoapods,请运行以下命令。

    sudo gem uninstall cocoapods sudo gem uninstall -n /usr/local/bin cocoapods cocoapods pod install

如果你使用过brew请使用以下卸载

    重新安装 cocoapods brew uninstall cocoapods

如果您在brew reinstall 重新安装 cocoapods 后看到错误消息,请转到第 2 步。

    解决文件冲突brew link --overwrite cocoapods

如果您收到-bash: pod: command not found 错误,则所有实例都会被正确删除。否则,您可能需要从该目录中手动删除 cocoapods 相关文件 ~/.rvm/rubies/ruby-2.5.3/lib/ruby。

    sudo gem update --system gem install cocoapods

【讨论】:

【参考方案19】:

以下在我的情况下有效:

brew install cocoapods --build-from-source
then: brew link --overwrite cocoapods

有关此问题的更多信息,请访问: https://github.com/CocoaPods/CocoaPods/issues/8955

【讨论】:

这将破坏任何 Fastlane 构建,仅供参考。 我苦苦挣扎了好几天来修复我破损的可可足,但我做到了。此外,只有在其他一切都失败后才使用它作为最后的手段。 @KennethMurerwa 很高兴,它对你有用!【参考方案20】:

在 Android Studio 上,“使缓存无效/重新启动..”对我有用。

【讨论】:

【参考方案21】:

我有同样的问题。以下为我工作

    清洁项目 flutter 运行的用户终端 这是一个与 IDE 相关的问题,不是颤振或 cocoapods

【讨论】:

为我工作谢谢【参考方案22】:

尝试:

pod setup
brew link --overwrite cocoapods

命令后,重启IDE

【讨论】:

【参考方案23】:

我在执行 fastlane 命令时遇到了同样的问题。

原来我使用brew 安装了fastlane,而cocoapods 是使用gem 安装的。可能这就是为什么flutter doctor 显示一切正常,但是当我尝试部署应用程序时,fastlane 失败并出现上述错误。使用 sudo gem install fastlane 安装 fastlane 解决了 cocoapods 的问题。

确保您在 macOS 上使用相同的包管理器安装了这两个工具。

【讨论】:

【参考方案24】:

我遇到了同样的问题,这个来自 (https://guides.cocoapods.org/using/getting-started.html) 的例子对我有用

$ cd ios
$ gem which cocoapods
/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.3/lib/cocoapods.rb
$ /usr/local/lib/ruby/gems/2.7.0/bin/pod install

对我来说,问题是虽然安装了可可豆荚,但 pod 可执行文件不在我的路径上(显然)。请注意,pod install 需要从 ios 目录中运行。

【讨论】:

【参考方案25】:

经过更长时间的调查,我发现了两个导致错误的点

首先,

ios/Runner.xcodeproj/project.pbxproj 中更改链接器标志。 在 Xcode 中,导航到 Project Runner -> Build Settings -> Other Linker Flags 并更改其中的所有 blob:

$(inherited)
-framework
Flutter

其次,

PATH 变量中的 VS 代码条目不正确。根据文档here 进行相应更改后,错误不再存在。

【讨论】:

PATH 是我在mac迁移后的情况。【参考方案26】:

我尝试了 heymonkeyriot 提出的解决方案,但这还不够。对我有用的是卸载 cocoapods(当被问及删除 pod 时回答 Y)和 cocoapods-core,然后重新安装 cocoapods 并运行 pod install:

sudo gem list
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem install cocoapods

为我的项目更改为 ios 目录

pod install

【讨论】:

【参考方案27】:

在可视代码上重新安装颤振扩展解决了这个问题

【讨论】:

欢迎来到 SO!我建议将这种简短的答案/见解作为 cmets 提交。如果你没有足够的声望,请等到你有。 ^ 我查看了这个答案并尝试在我的 IDEA 上更新 Flutter 插件。有用。 @MyKoryto 它不应该出现在评论中。 它也适用于 AndroidStudio,当我将 Xcode 更新到 Xcode 13.2 时,我在 Android Studio 上遇到了同样的问题,我的项目在 Xcode 上完美运行,但在 Android Studio 中却没有跨度> 【参考方案28】:

这个问题可能是因为你安装了多个版本的 cocoapods。

你可以检查并解决它运行:

gem list查看是否安装了多个版本的cocoapod sudo gem uninstall cocoapods 会提示你选择卸载哪一个,或者是否要全部卸载 sudo gem install cocoapods

如果您卸载了所有 cocoapods,则需要额外的步骤

切换到 Flutter 项目的 iOS 目录 pod install

这应该允许您在 iOS 设备上运行 xcode 构建。

【讨论】:

修改了PATH变量COCOAPODS别忘了重启编辑器

以上是关于CocoaPods 未安装或未处于有效状态的主要内容,如果未能解决你的问题,请参考以下文章

如何监听浏览器当前页面是否处于活动页面(可见或未缩小)

如何解决 Ajax-Zoom 错误:$.axZm 不是有效对象或未定义

Flutter 2 升级:CocoaPods 未安装或无效状态

异常“实例未处于有效状态”

当应用程序处于未运行或后台状态时,如何处理推送通知有效负载而不点击它

可达性 iOS 无法正常工作