我已经将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
答案 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)
执行flutter clean
转到 ios/
文件夹,编辑 Podfile
并选择要启动的平台和版本。例如对于平台 ios 和版本 12.0 :
Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '12.0'
执行pod update
执行 pod install
(下载依赖项可能需要几分钟时间)
执行flutter run
答案 4 :(得分:8)
答案 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 用户
ios/Pods/Local Podspevs
目录json
文件以找到所需的最高 ios 版本。其中一些是我的"ios": "10.0"
ios/ directory
Podfile
个文件# platform :ios, '9.0'
并将 9.0
替换为第 2 步中的版本。-例如 10.0
。然后是 M1 特定部分
运行sudo arch -x86_64 gem install ffi
运行arch -x86_64 pod repo update
运行 arch -x86_64 pod install
错误应该消失了
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 -> 打开 -> 右键单击登录 -> 解锁(构建成功后您将锁定)
希望这对某人有所帮助!如果仍然遇到问题,请在下面发表评论,我很乐意提供帮助! :)
答案 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存储库。您的拟足动物回购可能已过期
遵循此命令来更新您的广告连播
flutter clean
pod repo update
/ios/Pods/
和/ios/Podfile.lock
pod install
答案 12 :(得分:2)
此针对react-native-firebase的迁移指南可能对您的情况有用:
https://rnfirebase.io/migrating-to-v6#removing-v5-from-javascript
我卸载了版本5,并安装了版本6,但似乎还有很多工作要做,以摆脱较旧版本的Firebase。
答案 13 :(得分:1)
为我工作
答案 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)
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