pod 安装时出现 Flutter 错误:CocoaPods 找不到 pod“Firebase/CoreOnly”的兼容版本

Posted

技术标签:

【中文标题】pod 安装时出现 Flutter 错误:CocoaPods 找不到 pod“Firebase/CoreOnly”的兼容版本【英文标题】:Flutter error on pod install: CocoaPods could not find compatible versions for pod "Firebase/CoreOnly" 【发布时间】:2019-09-28 21:26:31 【问题描述】:

我的 Flutter 应用无法在我的 ios 设备上运行,但它在 android 上运行良好。我在pod install 上遇到错误

这是pod install --verbose的输出

alyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-OneSignalNotificationServiceExtension`: (``)

Finding Podfile changes
  A contacts_service
  A firebase_auth
  A flutter_crashlytics
  A local_auth
  A onesignalflutter
  A path_provider
  A permission
  A sqflite
  A url_launcher
  - Flutter
  - OneSignal
  - cloud_functions
  - firebase_core

Fetching external sources
-> Fetching podspec for `Flutter` from `.symlinks/flutter/ios`
-> Fetching podspec for `cloud_functions` from `.symlinks/plugins/cloud_functions/ios`
-> Fetching podspec for `contacts_service` from `.symlinks/plugins/contacts_service/ios`
-> Fetching podspec for `firebase_auth` from `.symlinks/plugins/firebase_auth/ios`
-> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
-> Fetching podspec for `flutter_crashlytics` from `.symlinks/plugins/flutter_crashlytics/ios`
-> Fetching podspec for `local_auth` from `.symlinks/plugins/local_auth/ios`
-> Fetching podspec for `onesignalflutter` from `.symlinks/plugins/onesignalflutter/ios`
-> Fetching podspec for `path_provider` from `.symlinks/plugins/path_provider/ios`
-> Fetching podspec for `permission` from `.symlinks/plugins/permission/ios`
-> Fetching podspec for `sqflite` from `.symlinks/plugins/sqflite/ios`
-> Fetching podspec for `url_launcher` from `.symlinks/plugins/url_launcher/ios`

Resolving dependencies of `Podfile`
[!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
  In snapshot (Podfile.lock):
    Firebase/CoreOnly (= 5.20.2)

  In Podfile:
    firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) was resolved to 0.0.1, which depends on
      Firebase/Auth (~> 6.0) was resolved to 6.0.0, which depends on
        Firebase/CoreOnly (= 6.0.0)

It seems like you've changed the constraints of dependency `Firebase/CoreOnly` inside your development pod `firebase_auth`.
You should run `pod update Firebase/CoreOnly` to apply changes you've made.

/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:328:in `raise_error_unless_state'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:310:in `block in unwind_for_conflict'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `tap'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `unwind_for_conflict'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:257:in `process_topmost_state'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/resolver.rb:91:in `resolve'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer.rb:909:in `block in resolve_dependencies'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb:64:in `section'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer.rb:907:in `resolve_dependencies'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer/analyzer.rb:114:in `analyze'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:266:in `analyze'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:174:in `block in resolve_dependencies'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb:64:in `section'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:173:in `resolve_dependencies'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:136:in `install!'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/command/install.rb:48:in `run'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/lib/cocoapods/command.rb:52:in `run'
/usr/local/Cellar/cocoapods/1.6.1/libexec/gems/cocoapods-1.6.1/bin/pod:55:in `<top (required)>'
/usr/local/Cellar/cocoapods/1.6.1/libexec/bin/pod:22:in `load'
/usr/local/Cellar/cocoapods/1.6.1/libexec/bin/pod:22:in `<main>'

[!] Automatically assigning platform `ios` with version `8.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.

[!] Automatically assigning platform `ios` with version `10.0` on target `OneSignalNotificationServiceExtension` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.

这是我的 Podfile:

# 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

target 'OneSignalNotificationServiceExtension' do
  use_frameworks!
  pod 'OneSignal', '>= 2.9.3', '< 3.0'
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

这是我的 pubspec.yaml:

name: kvote_app
description: A new Flutter application.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# Read more about versioning at semver.org.
version: 1.0.0+1

environment:
  sdk: ">=2.0.0-dev.68.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  flutter_bloc: any
  color: any
  http: any
  equatable: any
#  permission_handler: ^2.1.2
  cloud_functions: ^0.3.0
  firebase_auth: ^0.11.0
  font_awesome_flutter: any
  fancy_bottom_navigation: any
  permission: any
  contacts_service: any
  local_auth: any
  sqflite: any
  path_provider: any
  auto_size_text: any
  flutter_crashlytics: any
  url_launcher: any
  rflutter_alert: any
  onesignalflutter:
        git: git://github.com/jmrobles/OneSignal-Flutter-SDK.git


dev_dependencies:
  flutter_test:
    sdk: flutter


# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
  - assets/avatar.png
  - assets/logo.png
  - assets/img/login_logo.png

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.io/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.io/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.io/custom-fonts/#from-packages
  fonts:
    - family: WorkSansSemiBold
      fonts:
        - asset: assets/fonts/Work_Sans/WorkSans-SemiBold.ttf

    - family: WorkSansBold
      fonts:
        - asset: assets/fonts/Work_Sans/WorkSans-Bold.ttf

    - family: WorkSansMedium
      fonts:
        - asset: assets/fonts/Work_Sans/WorkSans-Medium.ttf

发生该错误的主要原因是云函数和身份验证 Firebase 库之间存在冲突。

我对 pod 完全陌生,似乎无法在网上找到我的案例的解决方案。我尝试了https://***.com/a/40102370 的答案,但没有奏效。

关于如何解决此问题的任何建议?

【问题讨论】:

重复***.com/questions/56055142/… 这能回答你的问题吗? CocoaPods could not find compatible versions for pod "Firebase/CoreOnly" 【参考方案1】:

删除 Podfile.lock 文件和 Pod 目录后它对我有用,然后再次使用 pod install 命令手动安装 pod。

【讨论】:

【参考方案2】:

尝试在终端中使用这些命令:

rm -rf ~/.cocoapods/repos  
pod setup

【讨论】:

【参考方案3】:

我也有同样的问题。

您不应将 pubspec.yaml 版本设置为“任何”。解决版本后,您应该修复它以使其稳定。

【讨论】:

【参考方案4】:

转到您的颤振项目。导航到 ios 并打开 Podfile 将该文件的第二行替换为:

platform :ios, '10.0'

simple_permissions 不适用于 10.0 以下的 iOS 版本

【讨论】:

请更具体地了解该线路,并确保您回答完整。我们将不得不投反对票,除非你要纠正这个......祝你好运@Pierre 这里是解释github.com/FirebaseExtended/flutterfire/issues/… 谢谢它救了我的命【参考方案5】:

从 podfile 中取消注释 ios 版本

platform :ios, '9.0' // ios/Pods/podfile

然后使用

安装 pod
pod install

然后尝试运行应用程序

【讨论】:

【参考方案6】:

从平台更改为 :ios, '9.0' // ios/Pods/podfile

到平台 :ios, '10.0' // ios/Pods/podfile

它对我有用。谢谢,伙计们。

【讨论】:

请不要添加 "thanks" 作为答案。它们实际上并没有提供问题的答案,并且可能被未来的访问者视为噪音。一旦你earn足够reputation,你将获得upvote answers你喜欢的特权。这样,问题的未来访问者将看到对该答案的更高投票数,并且回答者也将获得声誉积分奖励。见Why is voting important。【参考方案7】:

取消注释 Podfile 的第 2 行对我有用。

【讨论】:

最好与您分享 Podfile 的第 2 行,因为对于现在或以后查看此内容的人来说可能会有所不同【参考方案8】:

问题似乎是 cocoapods 修复更新现有 pod 的问题

更新以下命令

    rm Podfile.lock 删除 ios/Podfile.lock

    运行pod install --repo-update

【讨论】:

【参考方案9】:

之后它对我有用 step 1. 删除 Podfile.lock 文件和 Pod 目录 步骤 2.pod install --repo-update 第三步。 pod 更新 Firebase/CoreOnly

【讨论】:

【参考方案10】:

对我来说,我只是运行这个命令,它的固定:pod install --repo-update

【讨论】:

以上是关于pod 安装时出现 Flutter 错误:CocoaPods 找不到 pod“Firebase/CoreOnly”的兼容版本的主要内容,如果未能解决你的问题,请参考以下文章

如何解决mac上flutter中的“error running pod install”?

安装 Alamofire pod 时出现名称冲突错误

在 MacOS 上为 Flutter 安装 cocoapods 时出现问题

运行 pod install 时 Flutter iOS 构建失败

通过命令行安装 pod 时出现问题

在 AWS EKS 上扩展 pod 时出现 502 ALB 错误