web-dev-qa-db-fra.com

Les cocoapodes n'ont pas pu trouver des versions compatibles pour POD "Firebase / Coinonly"

J'ai mis à jour mon package flottant aux dernières versions et maintenant IOS ne fonctionne plus.

Lorsque j'essaie de mettre à jour les pods, cela montre cette erreur:

    [!] 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)

Ici mon pubspec.yaml (Firebase lié):

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"

J'ai fait différentes étapes pour essayer de réparer:

flutter clean
flutter build ios

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

J'ai défini la plate-forme: iOS, '12 .1 'dans Podfile et en Xcode comme cible de construction mais rien ne reviendra pour fonctionner.

Ici mon 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
Luca Panteghini

Je viens de courir dans ce même problème lorsque vous essayez d'ajouter Firebase Analytics à mon projct. Je continuais à courir la mise à jour de la pod dans le terminal, mais je ne pouvais pas réussir à Firebasecore (6.0.0) jusqu'à ce que je me suis assuré que tous les packages de flutter dans le fichier PUBSPEC.YAML étaient sur la dernière version.

1) Je me suis débarrassé de l'emballage qui causait l'erreur. Pour moi, c'était Firebase Analytics parce que je venais d'ajouter cela à mon projet.

2) J'ai traversé tous les forfaits Firebase et je me suis assuré que j'avais la version la plus récente de mon pubspec.YAML. Les voici:

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

3) Accédez au dossier iOS et exécutez la mise à jour de POD

4) Ajouter un package Firebase Analytics (ou tout ce que vous êtes intéressé à ajouter) à PUBSPEC.YAML.

5) Exécuter des packages obtenez

6) Exécutez l'installation de POD dans la borne

1
Eric Duffett

Le problème est dans les plug-ins cloud_functions. Ils ont 5,18 version de Firebase. Pour résoudre ce problème, vous devez modifier manuellement le fichier cloud_functions.podspec dans le dossier iOS du plugin pendant que leur ne peut enfin réparer.

Changes le

s.Dependency 'Firebase/Firestore', '~> 5.18'

à

s.Dependency 'Firebase/Firestore', '~> 6.0'

Après cela, désactivez toujours une erreur concernant certaines dépendances manquées des fichiers de fonctions Firebase.

J'ajouterai directement dans la cosse de cette ligne:

pOD 'Firebase/Fonctions'

Je sais que tout cela est une solution de contournement mais travaille de cette façon pour moi.

0
Luca Panteghini

Travaillé pour moi lorsque j'ai ajouté la dépendance de la version iOS la plus élevée des liens symboliques/plugins dans la plate-forme Podfile: iOS, '11 .0 '

0
Abel Tilahun