首页 > 解决方案 > IOS 上的 Flutter 版本卡在 1.0.0

问题描述

当我运行时:

pod outdated

在 IOS 上确定任何过时的 pod 我得到以下结果:

.... 

Analyzing dependencies
The color indicates what happens when you run `pod update`
<green>  - Will be updated to the newest version
<blue>   - Will be updated, but not to the newest version because of specified version in Podfile
<red>    - Will not be updated because of specified version in Podfile

The following pod updates are available:
- Flutter 1.0.0 -> 1.0.0 (latest version 1.3.300)
- Protobuf 3.9.2 -> 3.9.2 (latest version 3.10.0-rc1)

虽然 Flutter 的 1.0.0 版(红色)目前在 IOS 上似乎没问题,有人可以建议我如何更新这个 Pod 吗?

我已经使用以下方法升级了 Flutter:

/Users/bob/Downloads/flutter/bin/flutter upgrade

对于上面提到的 pod 版本,上述命令似乎没有任何区别。我希望一切都是最新版本,但如果没有必要知道这些信息也会有所帮助。

使用:

/Users/bob/Downloads/flutter/bin/flutter doctor -v

揭示:

[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G95, locale en-US)
    • Flutter version 1.9.1+hotfix.2 at /Users/bob/Downloads/flutter
    • Framework revision 2d2a1ffec9 (3 weeks ago), 2019-09-06 18:39:49 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0


[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/bob/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.6.0

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (1 available)
    • iPhone 11 Pro Max • 08EB7508-34DE-4797-8F33-3DEE671742E4 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-0 (simulator)

• No issues found!

标签: fluttercocoapods

解决方案


问题来自 podhelper.rb 脚本 ( YOUR_PATH//flutter/packages/flutter_tools/bin/podhelper.rb)。它会生成一个“假”的 Flutter.podspec 文件,但它会硬编码 1.0.0 podspec。

通过编辑 podspec.rb 的第 155-190 行(适用于 iOS 应用程序)解决此问题,将 podspec 的 json 定义替换为您想要从 CocoaPods 存储库迁移到的版本(例如,此处为 v2.5)。运行 pod update 它将更新到 2.5。

脚本的下一部分对 macOS 应用程序重复相同的错误,因此您可能需要对第 193-228 行重复。


推荐阅读