动机
Flutter 1.22已声明它将支持iOS 14,并且
下载Xcode 12
Xcode12是必需的,因此请下载。
您可以从此处
下载适当的Xcode。
https://developer.apple.com/download/more/
1 | [?] Xcode - develop for iOS and macOS (Xcode 12.0.1) |
Flutter更新
首先,我们将更新Flutter
1 | $ flutter upgrade |
在更新时,以下版本
1 | [?] Flutter (Channel stable, 1.22.0, on Mac OS X 10.15.6 19G73, locale ja-JP) |
重新创建Podfile
我认为这取决于创建项目的时间,但是
使用较旧版本的Flutter创建的Podfile应该删除并重新创建。
如果删除它并快速运行,将创建一个新的podfile。
根据项目的不同,您可能已将设置添加到Podfile,因此请进行必要的修改。
当有多个Xcode构建设置和与Firebase插件相关的修补程序时,可能会有设置。
1 2 | $ rm ios/Podfile $ flutter run |
插件更新
为了更新
pubspec.yaml
1 2 3 4 5 6 7 8 | # Firebase firebase_core: 0.5.0 firebase_auth: 0.18.1+1 firebase_crashlytics: 0.2.1 firebase_messaging: 7.0.2 firebase_ml_vision: 0.9.7 firebase_dynamic_links: 0.6.0+1 firebase_analytics: 6.0.1 |
即使您按原样正常进行操作,它也会与Xcode构建混淆,因此我们将支持它。
Firebase插件仍然很旧,并且有新版本
似乎发生了未按预期下载且依赖项解析失败的情况。
(由于我在这里花了很多时间,执行顺序非常可疑,可能会有不必要的命令
1 2 3 4 | $ flutter clean $ cd ios && rm -rf Pods/ $ flutter packages upgrade $ pod update && pod install |
实际发生的错误如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | [!] CocoaPods could not find compatible versions for pod "Firebase/Core": In Podfile: firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/Analytics (~> 6.26.0) was resolved to 6.26.0, which depends on Firebase/Core (= 6.26.0) firebase_ml_vision (from `.symlinks/plugins/firebase_ml_vision/ios`) was resolved to 0.1.1, which depends on Firebase/Core CocoaPods could not find compatible versions for pod "FirebaseCore": In Podfile: firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/Analytics (~> 6.26.0) was resolved to 6.26.0, which depends on Firebase/Core (= 6.26.0) was resolved to 6.26.0, which depends on FirebaseAnalytics (= 6.6.0) was resolved to 6.6.0, which depends on FirebaseCore (~> 6.7) firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/CoreOnly (~> 6.26.0) was resolved to 6.26.0, which depends on FirebaseCore (= 6.7.2) firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`) was resolved to 0.2.1, which depends on Firebase/Crashlytics (~> 6.26.0) was resolved to 6.26.0, which depends on FirebaseCrashlytics (~> 4.1.1) was resolved to 4.1.1, which depends on FirebaseCore (~> 6.6) firebase_dynamic_links (from `.symlinks/plugins/firebase_dynamic_links/ios`) was resolved to 0.6.0-1, which depends on Firebase/DynamicLinks (~> 6.26.0) was resolved to 6.26.0, which depends on FirebaseDynamicLinks (~> 4.0.8) was resolved to 4.0.8, which depends on FirebaseCore (~> 6.2) CocoaPods could not find compatible versions for pod "GoogleUtilities/AppDelegateSwizzler": In Podfile: firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/Analytics (~> 6.26.0) was resolved to 6.26.0, which depends on Firebase/Core (= 6.26.0) was resolved to 6.26.0, which depends on FirebaseAnalytics (= 6.6.0) was resolved to 6.6.0, which depends on GoogleUtilities/AppDelegateSwizzler (~> 6.0) firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) was resolved to 7.0.2, which depends on Firebase/Messaging (~> 6.26.0) was resolved to 6.26.0, which depends on FirebaseMessaging (~> 4.4.1) was resolved to 4.4.1, which depends on GoogleUtilities/AppDelegateSwizzler (~> 6.5) GoogleUtilities/AppDelegateSwizzler (~> 6.5.2) CocoaPods could not find compatible versions for pod "GoogleUtilities/Environment": In Podfile: firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/Analytics (~> 6.26.0) was resolved to 6.26.0, which depends on Firebase/Core (= 6.26.0) was resolved to 6.26.0, which depends on FirebaseAnalytics (= 6.6.0) was resolved to 6.6.0, which depends on FirebaseInstallations (~> 1.3) was resolved to 1.4.0, which depends on GoogleUtilities/Environment (~> 6.6) firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 6.0.1, which depends on Firebase/CoreOnly (~> 6.26.0) was resolved to 6.26.0, which depends on FirebaseCore (= 6.7.2) was resolved to 6.7.2, which depends on |
此外,由于iOS8已从Xcode 12的Deployment Target中删除,因此在构建时将输出大量警告,因此请相应地更改库的Deployment Target。
1 2 3 4 5 6 7 | post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end end |
与新小部件
冲突
Flutter 1.22中添加了以下按钮小部件,但
因为项目中已经有一个名为
我们采取了重命名等必要措施。
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
flutter_stetho
我正在使用stetho作为应用程序的通信系统的调试工具,但是由于此插件不支持Flutter 1.22,因此我将导入受支持的修改后的分支。
(PR已发布,因此,如果已导入,则可以正常更新
https://github.com/brianegan/flutter_stetho/pull/40
1 2 3 | flutter_stetho: git: url: https://github.com/jasonlewicki/flutter_stetho |
此更新花费了很多时间,所以我组织了所做的事情。
我希望这对将来会做出回应的人有所帮助。
顺便说一下,接下来是Android支持!
参考
https://github.com/flutter/flutter/issues/28054
https://stackoverflow.com/questions/50768723/what-does-warning-mapping-architecture-arm64-to-x86-64-mean
https://qiita.com/taki4227/items/db9b503e56ab25a8a375
https://qiita.com/temoki/items/46ad22940e819a132435