firebase_crashlytics已解决为2.2.1,它依赖于Firebase/Crashlytics (= 8.6.0)。

14 浏览
0 Comments

firebase_crashlytics已解决为2.2.1,它依赖于Firebase/Crashlytics (= 8.6.0)。

我在尝试使用Crashlytics构建Flutter应用时遇到了错误
(但在codemagic上构建成功了)
我已经:

这是我的日志:

╰─$ flutter run
_time_reporting 中运行 "flutter pub get"...               804ms
在 iPhone 12 Pro Max 上以调试模式启动 lib/main.dart...
正在运行 pod install...                                           1,179ms
CocoaPods 的输出:

      准备
    分析依赖项
    检查要集成的目标
      使用“ARCHS”设置来构建目标“Pods-Runner”的体系结构:(``)
    查找 Podfile 更改
      - Flutter
      - connectivity_plus
      - device_info
      - firebase_core
      - firebase_crashlytics
      - flutter_barcode_scanner
      - image_picker
      - package_info
      - path_provider
    获取外部资源
    -> 从“Flutter”获取“Flutter”的podspec
    -> 从“.symlinks/plugins/connectivity_plus/ios”获取“connectivity_plus”的podspec
    -> 从“.symlinks/plugins/device_info/ios”获取“device_info”的podspec
    -> 从“.symlinks/plugins/firebase_core/ios”获取“firebase_core”的podspec
    firebase_core:使用“firebase_core”中定义的Firebase SDK版本“8.6.0”
    -> 从“.symlinks/plugins/firebase_crashlytics/ios”获取“firebase_crashlytics”的podspec
    firebase_crashlytics:使用“firebase_core”中定义的Firebase SDK版本“8.6.0”
    -> 从“.symlinks/plugins/flutter_barcode_scanner/ios”获取“flutter_barcode_scanner”的podspec
    -> 从“.symlinks/plugins/image_picker/ios”获取“image_picker”的podspec
    -> 从“.symlinks/plugins/package_info/ios”获取“package_info”的podspec
    -> 从“.symlinks/plugins/path_provider/ios”获取“path_provider”的podspec
    解析“Podfile”的依赖关系
      CDN:主干 相对路径:CocoaPods-version.yml 存在!返回本地,因为只在仓库更新时才进行检查
      CDN:主干 相对路径:all_pods_versions_c_7_9.txt 存在!返回本地,因为只在仓库更新时才进行检查
      CDN:主干 相对路径:Specs/c/7/9/Reachability/3.2/Reachability.podspec.json 存在!返回本地,因为只在仓库更新时才进行检查
      CDN:主干 相对路径:all_pods_versions_0_3_5.txt 存在!返回本地,因为只在仓库更新时才进行检查
      CDN:主干 相对路径:Specs/0/3/5/Firebase/8.5.0/Firebase.podspec.json 存在!返回本地,因为只在仓库更新时才进行检查
      CDN:主干 相对路径:Specs/0/3/5/Firebase/8.3.0/Firebase.podspec.json 存在!返回本地,因为只在仓库更新时才进行检查
    [!] CocoaPods 无法找到与 pod“Firebase/Crashlytics”兼容的版本:
      在快照(Podfile.lock)中:
        Firebase/Crashlytics(= 8.3.0)
      在 Podfile 中:
        firebase_crashlytics(来自“.symlinks/plugins/firebase_crashlytics/ios”)已解决为2.2.1,它依赖于
          Firebase/Crashlytics(= 8.6.0)
    找到满足`Firebase/Crashlytics(= 8.3.0),Firebase/Crashlytics(= 8.6.0)`依赖关系的规格,但它们需要更高的最低部署目标。
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:328:in“raise_error_unless_state”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:310:in“block in unwind_for_conflict”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in“tap”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in“unwind_for_conflict”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:257:in“process_topmost_state”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in“resolve”
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in“resolve”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/resolver.rb:94:in“resolve”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer/analyzer.rb:1074:in“block in resolve_dependencies”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/user_interface.rb:64:in“section”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer/analyzer.rb:1072:in“resolve_dependencies”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer/analyzer.rb:124:in“analyze”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer.rb:414:in“analyze”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer.rb:239:in“block in resolve_dependencies”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/user_interface.rb:64:in“section”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer.rb:238:in“resolve_dependencies”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/installer.rb:160:in“install!”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/command/install.rb:52:in“run”
    /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in“run”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/lib/cocoapods/command.rb:52:in“run”
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.2/bin/pod:55:in“
    /usr/local/bin/pod:23:in“load”
    /usr/local/bin/pod:23:in“


CocoaPods 的错误输出:

    [!] 在您的 Podfile 中检测到智能引号,并被忽略。为了避免将来出现问题,您不应该使用 TextEdit 进行编辑。如果您没有使用 TextEdit,请在所选编辑器中关闭智能引号。
运行 pod install 时出错
在 iPhone 12 Pro Max 上启动应用程序时出错。

  • 这是我的Podfile

# 取消注释此行以为项目定义全局平台
platform :ios, '12.0'
# CocoaPods 分析数据以同步方式发送到网络,影响 Flutter 构建的速度。
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}
def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} 必须存在。如果您手动运行 pod install,请确保先执行 flutter pub get"
  end
  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT 未在 #{generated_xcode_build_settings_path} 中找到。尝试删除 Generated.xcconfig,然后运行 flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
  use_frameworks!
  use_modular_headers!
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  # https://stackoverflow.com/a/69047809/16087862
  pod 'Firebase/Core'
  pod 'Firebase/Crashlytics'
end
# or pod ‘Firebase/AnalyticsWithoutAdIdSupport’
# for Analytics without IDFA collection capability
# add pods for any other desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
post_install do |installer|
  installer.pods_project.targets.each do |target|
    #target.build_configurations.each do |config|
    #  config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    #end
    flutter_additional_ios_build_settings(target)
    # https://stackoverflow.com/a/69047809/16087862
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
    end
  end
end

  • 这是我的pubspec.yaml


environment:
sdk: '>=2.13.0 <3.0.0' dependencies: flutter: sdk: flutter beamer: ^0.14.1 connectivity_plus: ^1.1.0 device_info: ^2.0.2 firebase_core: ^1.6.0 firebase_crashlytics: ^2.2.1 flutter_barcode_scanner: ^2.0.0 flutter_hooks: ^0.17.0 google_fonts: ^2.1.0 hooks_riverpod: ^0.14.0 http: ^0.13.3 image_picker: ^0.8.3 intl: ^0.17.0 package_info: ^2.0.2 shimmer: ^2.0.0 dev_dependencies: flutter_test: sdk: flutter stub: ^0.3.0 flutter_native_splash: ^1.2.1 flutter_launcher_icons: ^0.9.2 flutter_icons: android: true ios: true image_path: images/icon.png flutter_native_splash: color: '#ECEFF1' image: images/splash.png android: true ios: true web: true flutter: uses-material-design: true assets: - images/english.png - images/splash.png

  • 我的flutter doctor -v

[✓] Flutter(稳定通道,2.2.3,macOS 11.5.2 20G95 darwin-x64 上的 flutter,区域设置 en-EE)
• Flutter 版本 2.2.3,位于 /Users/francesco/fvm/versions/stable
• 框架修订 f4abaa0735(10 周前),2021 年 07 月 01 日 12:46:11 -0700
• 引擎修订 241c87ad80
• Dart 版本 2.13.4
[✓] Android 工具链 - 用于开发 Android 设备(Android SDK 版本 30.0.3)
• Android SDK 位于 /Users/francesco/Library/Android/sdk
• 平台 android-30,构建工具 30.0.3
• Java 二进制文件位于:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java
• Java 版本 OpenJDK Runtime Environment(AdoptOpenJDK)(构建 1.8.0_292-b10)
• 所有 Android 许可证均已接受。
[✓] Xcode - 用于 iOS 和 macOS 开发
• Xcode 位于 /Applications/Xcode.app/Contents/Developer
• Xcode 12.5.1,构建版本 12E507
• CocoaPods 版本 1.10.2
[✓] Chrome - 用于 Web 开发
• Chrome 位于 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[!] Android Studio(版本 2020.3)
• Android Studio 位于 /Applications/Android Studio.app/Contents
• Flutter 插件可从以下位置安装:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart 插件可从以下位置安装:
https://plugins.jetbrains.com/plugin/6351-dart
✗ 无法找到捆绑的 Java 版本。
• 尝试更新或重新安装 Android Studio。
[✓] VS Code(版本 1.60.0)
• VS Code 位于 /Applications/Visual Studio Code.app/Contents
• Flutter 扩展版本 3.26.0
[✓] 已连接的设备(可用 3 个)
• iPhone 12 Pro Max(移动设备)• 7D1B0B46-6D39-40A9-8792-8853C86AB930 • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-5(模拟器)
• macOS(桌面) • macos • darwin-x64 • macOS 11.5.2 20G95 darwin-x64
• Chrome(Web) • chrome • web-javascript • Google Chrome 93.0.4577.63
! 在 1 个类别中,Doctor 发现了问题。

我已经尝试了其他提出的解决方案,
但我发现大多数人都建议提升iOS版本
(我已经做过了)
有什么建议吗?

0
0 Comments

问题的原因是在使用Flutter开发过程中,使用了Firebase Crashlytics库的版本2.2.1,而该库依赖于Firebase/Crashlytics版本8.6.0。解决方法是执行一系列命令,包括清除缓存、更新依赖、更新Pod等操作。具体命令如下:

rm pubspec.lock && \
flutter clean && \
cd ios && \
pod cache clean --all && \
cd .. && \
flutter pub get && \
cd ios && \
pod update && \
cd ..

然后使用`flutter run`命令运行项目,即可解决该问题。需要注意的是,如果使用的是M1芯片的Mac电脑,需要使用以下命令替代`pod update`:

arch -x86_64 pod update

执行上述操作后,问题得到了解决。

0