CocoaPods找不到Pod“ Firebase / CoreOnly”的兼容版本

时间:2019-05-09 08:23:12

标签: ios firebase flutter

我已经将Flutter软件包更新为最新版本,现在IOS不再起作用。

当我尝试更新Pod时,会显示此错误:

    [!] 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'设置为构建目标,但是没有任何恢复工作的地方。

这是我的Podfile:

# 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

19 个答案:

答案 0 :(得分:65)

在 podfile 中编辑最低 ios 版本,然后运行 ​​pod install。

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

答案 1 :(得分:36)

运行

pod repo update

如果问题未解决,请删除根目录中的Podfile.lock,然后删除

pod install

答案 2 :(得分:12)

只需先执行pod update,然后执行pod install。这对我有用。

答案 3 :(得分:12)

  1. 执行flutter clean

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

Podfile

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

  2. 执行 pod install(下载依赖项可能需要几分钟时间)

  3. 执行flutter run

答案 4 :(得分:8)

enter image description here

要使用 ^1.0.3 版本的“firebase_core”依赖项,“iOS 部署目标”必须不低于“10.0”

答案 5 :(得分:3)

我仍然无法解决这个问题,尝试了所有上述建议,但我仍然得到以下建议 - 任何有用的建议,因为我真的需要让它在 iOS 平台上编译和运行。请参阅下面我尝试解决此问题的完整输出。我的 flutter doctor 环境也很干净,检查正常。

user@Users-MacBook-Pro ios % pod install

分析依赖 firebase_auth:使用“firebase_core”中定义的 Firebase SDK 版本“7.3.0” firebase_core:使用“firebase_core”中定义的 Firebase SDK 版本“7.3.0” firebase_database:使用“firebase_core”中定义的 Firebase SDK 版本“7.3.0” firebase_messaging:使用“firebase_core”中定义的 Firebase SDK 版本“7.3.0” [!] CocoaPods 找不到 pod“Firebase/Database”的兼容版本: 在 Podfile 中: firebase_database(来自 .symlinks/plugins/firebase_database/ios)已解析为 6.0.0,这取决于 Firebase/数据库 (= 7.3.0)

flutter_geofire (from `.symlinks/plugins/flutter_geofire/ios`) was resolved to 0.0.1, which depends on
  GeoFire (~> 4.0) was resolved to 4.1.0, which depends on
    Firebase/Database (~> 6.0)

CocoaPods 找不到 pod“FirebaseCore”的兼容版本: 在 Podfile 中: firebase_core(来自 .symlinks/plugins/firebase_core/ios)已解析为 0.7.0,这取决于 Firebase/CoreOnly (= 7.3.0) 被解析为 7.3.0,这取决于 FirebaseCore (= 7.3.0)

firebase_database (from `.symlinks/plugins/firebase_database/ios`) was resolved to 6.0.0, which depends on
  Firebase/Database (= 7.3.0) was resolved to 7.3.0, which depends on
    FirebaseDatabase (~> 7.3.0) was resolved to 7.3.0, which depends on
      FirebaseCore (~> 7.0)

答案 6 :(得分:3)

2021 年 3 月

cloud_firestore: ^1.0.0

cd ios
rm Podfile.lock
pod repo update

答案 7 :(得分:2)

? M1 Mac 用户 

  1. 转到项目中的 ios/Pods/Local Podspevs 目录
  2. 检查每个 json 文件以找到所需的最高 ios 版本。其中一些是我的"ios": "10.0"
  3. 返回ios/ directory
  4. 打开 Podfile 个文件
  5. 取消注释 # platform :ios, '9.0' 并将 9.0 替换为第 2 步中的版本。-例如 10.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 文件




如果仍然无法正常工作,请尝试此奖励步骤:

  • 试图直接从 Xcode 运行?首先在 Flutter 项目中运行 flutter build iOS -> 然后在 Xcode 中运行

  • 还是不行cd iOS运行rm -rf Pods/ Podfile.lock ; pod install

  • 还是不行?在 Spotlight 中搜索 Keychain Access -> 打开 -> 右键单击​​登录 -> 解锁(构建成功后您将锁定)

  • 还是不行? Xcode Runner Info Screenshot 确保您的 Runner Info Configs 如下所示



希望这对某人有所帮助!如果仍然遇到问题,请在下面发表评论,我很乐意提供帮助! :)

答案 8 :(得分:2)

简单的解决方案对我有用(由 IDE 本身建议)

pod install --repo-update

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

答案 9 :(得分:2)

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

在 AppDelegate.swift (flutter-project/ios/Runner) 中,添加以下两行:

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

在终端:

pod repo update 

flutter build ios

然后在 Xcode 中运行您的项目。

答案 10 :(得分:2)

当我从 Podfile 平台的符号链接/插件中添加最高的 ios 版本依赖项时对我有用:ios, '11.0'

答案 11 :(得分:2)

您只需更新Pod存储库。您的拟足动物回购可能已过期

遵循此命令来更新您的广告连播

  1. flutter clean
  2. pod repo update
  3. 已删除/ios/Pods//ios/Podfile.lock
  4. 运行pod install

答案 12 :(得分:2)

此针对react-native-firebase的迁移指南可能对您的情况有用:

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

我卸载了版本5,并安装了版本6,但似乎还有很多工作要做,以摆脱较旧版本的Firebase。

答案 13 :(得分:1)

  1. 删除 Podfile
  2. pod 初始化
  3. pod 安装

为我工作

答案 14 :(得分:0)

问题出在cloud_functions插件中。 他们有5.18版本的Firebase。 要修复此问题,您必须在插件的ios文件夹中手动更改文件cloud_functions.podspec,直到它们最终无法修复。

更改

  

s.dependency'Firebase / Firestore','〜> 5.18'

  

s.dependency'Firebase / Firestore','〜> 6.0'

在那之后仍然存在关于Firebase函数文件某些依赖项的错误。

我直接在窗格中添加以下行:

  

pod“ Firebase /功能”

我知道所有这都是一种解决方法,但是对我来说就是这种方式。

答案 15 :(得分:0)

如果您使用的是 M1 mac。

运行删除podfile.lock

arch -x86_64 rm -rf Podfile.lock

然后通过运行更新 Pod

arch -x86_64 pod install --repo-update

答案 16 :(得分:0)

我必须按照这个 answer 做两件事

1- 在我的 Podfile 中,我有 platform :ios, '13.0',我不得不将其切换到 platform :ios, '10.0'

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

我的 podfile 现在看起来像这样:

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 ...

答案 17 :(得分:0)

在 React Native 中

cd ios

rm -rf Podfile.lock

pod install

答案 18 :(得分:0)

在尝试将Firebase Analytics添加到我的项目时,我遇到了同样的问题。我一直在终端上运行pod update,但是直到确保pubspec.yaml文件中的所有flutter软件包都为最新版本,我才能成功进入FirebaseCore(6.0.0)。

1)我摆脱了导致错误的软件包。对我而言,它是Firebase Analytics,因为我刚刚将其添加到了项目中。

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 update

4)将Firebase Analytics程序包(或您要添加的任何内容)添加到pubspec.yaml。

5)运行软件包get

6)在终端中运行pod install