flutter - 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!
解决方案
问题来自 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 行重复。