CocoaPods 未能找到与 pod“ Firebase/CoreOnly”兼容的版本

我已经更新了我的 flutter 软件包到最后的版本,现在 IOS 不再工作了。

当我尝试更新吊舱时,它会显示以下错误:

    [!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
In Podfile:
cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) was resolved to 0.0.1, which depends on
Firebase/Firestore (~> 6.0) was resolved to 6.0.0, which depends on
Firebase/CoreOnly (= 6.0.0)


cloud_functions (from `.symlinks/plugins/cloud_functions/ios`) was resolved to 0.0.1, which depends on
Firebase/Functions (~> 5.18) was resolved to 5.18.0, which depends on
Firebase/CoreOnly (= 5.18.0)

这是我的 pubspec.yaml (与 Firebase 相关) :

firebase_core: "^0.4.0"
firebase_auth: "^0.11.0"
firebase_analytics: "^3.0.0"
cloud_firestore: "^0.11.0+1"
cloud_functions: "^0.3.0"
firebase_storage: "^3.0.0"
firebase_messaging: "^5.0.1"

我已经采取了各种措施来解决这个问题:

flutter clean
flutter build ios


pod install
pod update
pod repo update
pod install --repo-update

我在 Podfile 和 Xcode 设置了 ios、12.1平台作为构建目标,但没有一个能够正常工作。

这是我的文件夹:

# Uncomment this line to define a global platform for your project
platform :ios, '12.1'


# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'


project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}


def parse_KV_file(file, separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
return [];
end
pods_ary = []
skip_line_start_symbols = ["#", "/"]
File.foreach(file_abs_path) { |line|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
plugin = line.split(pattern=separator)
if plugin.length == 2
podname = plugin[0].strip()
path = plugin[1].strip()
podpath = File.expand_path("#{path}", file_abs_path)
pods_ary.push({:name => podname, :path => podpath});
else
puts "Invalid plugin specification: #{line}"
end
}
return pods_ary
end


target 'Runner' do
use_frameworks!


# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
# referring to absolute paths on developers' machines.
system('rm -rf .symlinks')
system('mkdir -p .symlinks/plugins')


# Flutter Pods
generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
if generated_xcode_build_settings.empty?
puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
end
generated_xcode_build_settings.map { |p|
if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
symlink = File.join('.symlinks', 'flutter')
File.symlink(File.dirname(p[:path]), symlink)
pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
end
}


# Plugin Pods
plugin_pods = parse_KV_file('../.flutter-plugins')
plugin_pods.map { |p|
symlink = File.join('.symlinks', 'plugins', p[:name])
File.symlink(p[:path], symlink)
pod p[:name], :path => File.join(symlink, 'ios')
}
end


post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
119858 次浏览

当我试图将 Firebase Analytics 添加到我的项目中时,我也遇到了同样的问题。我一直在终端上运行 pod 更新,但是我无法成功访问 FirebaseCore (6.0.0) ,直到我确保 pubspec.yaml 文件中的所有 flutter 包都是最新版本。

1)我删除了导致错误的软件包。对我来说,这是 Firebase 分析,因为我刚刚添加到我的项目。

2)我检查了所有的 firebase 软件包,确保在 pubspec.yaml 中有最新的版本。他们在这里:

firebase_core: ^0.4.0
firebase_database: ^3.0.0
firebase_auth: ^0.11.0
firebase_storage: ^3.0.0

3)导航到 ios 文件夹并运行 pod 更新

4)向 pubspec.yaml 添加 Firebase Analytics 包(或者任何你感兴趣的东西)。

5)运行包 get

6)在终端运行吊舱安装

问题在于云函数插件。 他们有5.18版本的 Firebase。 为了修复它,您必须手动更改文件 cloud _ function。在 ios 文件夹的 podspec 插件,而他们没有最终修复。

改变它

’~ > 5.18’,’~ > 5.18’

相关性‘ Firebase/Firest’,’~ > 6.0’

在此之后,关于 Firebase 函数文件的一些遗漏依赖项仍然存在一个错误。

我在豆荚里直接加了这句话:

吊舱’火力基地/功能’

我知道这一切都是一个变通办法,但这样的工作方式为我。

打电话给 pod repo update

如果问题没有解决

删除根目录中的 Podfile.lock,然后运行 pod install

先做 pod update然后做 pod install这对我很管用。

这个关于反应-本地-火源的迁移指南可能对你的案例有用:

Https://rnfirebase.io/migrating-to-v6#removing-v5-from-javascript

我卸载了版本5,安装了版本6,但似乎还有一些额外的工作要做,以摆脱旧版本的 firebase。

当我从 Podfile 平台的 symlinks/plugins 中添加了最高的 ios 版本依赖关系时,我觉得很有用: ios,’11.0’

  1. 执行 flutter clean

  2. 转到 ios/文件夹,编辑 Podfile并选择要启动的平台和版本。例如,对于平台 Ios和版本 12.0:

文件夹

# Uncomment this line to define a global platform for your project
platform :ios, '12.0'
  1. 执行 pod update

  2. 执行 pod install(下载依赖项需要一些时间)

  3. 执行 flutter run

编辑 podfile 中的最小 ios 版本,然后运行 pod install。

platform :ios, '9.0'改为 platform :ios, '10.0',然后运行 pod install为我修复它。

二零二一年三月

cloud_firestore: ^1.0.0

cd ios
rm Podfile.lock
pod repo update

enter image description here

要在版本 ^ 1.0.3中使用“ firebase _ core”依赖项,“ iOS 部署目标”必须不小于“10.0”

截至2021年4月28日,对我有效的方法(经过几天的奋斗)是:

Swift (flutter-project/ios/Runner)中,添加以下两行:

FirebaseApp.configure()
GeneratedPluginRegistrant.register(with: self)

在终点站:

pod repo update


flutter build ios

然后在 Xcode 运行你的项目。

这个简单的解决方案对我很有效(IDE 本身建议的)

pod install --repo-update

在终端 IOs 文件夹中运行命令

  1. 删除 Podfile
  2. 救生舱在里面
  3. 吊舱安装

对我有用

如果你使用的是 M1。

通过运行删除 podfile.lock

arch -x86_64 rm -rf Podfile.lock

然后通过运行

arch -x86_64 pod install --repo-update

我必须按照这个 回答做两件事

在我的播客文件中,我有 platform :ios, '13.0',我不得不切换到 platform :ios, '10.0'

2-我不得不删除我的整个 podfile 并重新安装它,但是这次对于 Firebase/Database pod 我使用的是 pod 'Firebase/Database', '~> 7.0.0'

我的播客文件现在是这样的:

platform :ios, '10.0'
install! 'cocoapods', :deterministic_uuids => false


target 'MyApp' do
use_frameworks!


# Pods for MyApp


pod 'Firebase/Database', '~> 7.0.0'


// other pods ...

在《反应本土》中

cd ios


rm -rf Podfile.lock


pod install

对于 M1 Mac 用户

  1. 转到项目中的 ios/Pods/Local Podspecs目录
  2. 检查每个 json文件找到最高要求的 iOS 版本。我的是 "ios": "10.0"在其中的一些
  3. 回到 ios/ directory
  4. 打开 Podfile文件
  5. 取消注释 # platform :ios, '9.0'并用步骤2中的版本替换 9.0

然后是 M1的特定部分

  1. 运行 sudo arch -x86_64 gem install ffi

  2. 运行 arch -x86_64 pod repo update

  3. 运行 arch -x86_64 pod install错误应该消失



  1. 如果使用 Flutter cd -返回到您的根目录-打开 iOS 模拟器并运行 flutter run



10. 尽情享受吧



如果不工作,您可能需要在步骤1之前运行 flutter pub add firebase_core将 firebase _ core 添加到 pubspec.yaml文件中




如果还是不起作用,试试下面这些额外的步骤:



希望这有所帮助! 如果仍然面临问题,请在下面评论!

我解决了那个问题。

  1. 我猜你添加新的火力基地包,然后问题出现。
  2. 删除最后添加的包
  3. 把颤振清除干净
  4. 删除 podfile.lock
  5. 确保所有防火包使用更新版本
  6. 经营小酒馆
  7. 去 cd ios/
  8. 运行吊舱安装 然后修好了。

对于 M1 Mac 来说,

在最后一部分找到答案是最容易和最快的。

移动到文件夹 ios:

cd ios

方法一:

打开你的终端并运行

sudo gem uninstall cocoapods
sudo gem install cocoapods

重新启动 IDE 或编辑器

方法二:

注意: 只有在 方法1不起作用时才尝试

现在是时候为 M1 Mac安装吊舱了:

 sudo arch -x86_64 gem install ffi
arch -x86_64 pod repo update
arch -x86_64 pod install

现在 99% 安装错误的机会应该消失了

现在只有1% 的可能性,你仍然得到错误:

打开 ios Runner XCode 项目并按照图像说明操作。

将您的排除体系结构从体系结构更改为目标

form i386 to arm64 i386 (Note: space is important)

enter image description here

现在回到根目录并运行

 flutter run

另外,重新启动编辑器。

预付注意事项:

多次获取此错误,并在每次修复时复制粘贴该错误。 因此,我在这里提供一个更好的方法来实现这一点与方法2的帮助:

抄写下面的代码

#!/bin/bash


pwd
sudo arch -x86_64 gem install ffi
arch -x86_64 pod repo update
arch -x86_64 pod install

您需要在 IOS 文件夹中创建一个脚本文件,我们称之为 < strong > pod _ install. sh 如果您再次遇到同样的问题,您只需要运行一个命令。

sh pod_install.sh

从你的 ios 文件夹

现在输入你 Mac 的密码

下午茶时间

不要忘记重新启动您的编辑器。

pod update然后 pod install这对我这边有用

返回到 abc0文件夹,打开 Podfile,然后改变平台如下。然后单击编辑器中的 run按钮。

以下是我的方法。

  1. 删除 IOS 目录中的 Podfile.lock
  2. 运行 arch-x86 _ 64吊舱后安装

对我来说,这很管用

# Uncomment this line to define a global platform for your project
platform :ios, '12.0'

这个问题一直很烦人,但我就是这样解决的。 首先,我更新了消防包。

   firebase_core: 1.10.0
firebase_auth: 3.4.1

2-我走进 Android 工作室的终端,写下了它。

cd ios
pod deintegrate
pod repo update

3-在 IOS 文件夹中 我删除了. symlinks 文件夹

最后,我也写在终端

pod install

如果仍然失败,则从步骤1更改 Firebase 更新并重复其他步骤。

返回 pubspec.yaml,确保 flutter fire 包都兼容在一起。我的问题是因为 firebase _ remote _ config 版本比云火灾恢复稍微新一些,并且在运行 Pod update 时连续导致错误。

对我有效的简单解决方案,这是因为我使用的是旧版本的 Firebase 依赖。所以 升级所有依赖项,然后使用颤振酒吧得到和颤振运行为我工作

首先从 IOS 文件夹中删除 podfile.lock 文件

然后从终端进入你的 ios 文件夹

cd ios

现在输入终端

pod repo update
pod install

或者

pod install
pod repo update