Flutter旧版本升级-> Android 配置、iOS配置

1------------android

android部分:

部分原文:原文链接:https://blog.csdn.net/weixin_73167149/article/details/149289805

概括

要构建适用于 Android 的 Flutter 应用,必须应用 Flutter 的 Gradle 插件。过去,这是通过 Gradle 的传统命令式应用脚本方法以命令式方式完成的。

Flutter 3.16 新增了使用 Gradle声明式 plugins {} 块(也称为插件 DSL)应用这些插件的支持,现在已成为推荐方法。从 Flutter 3.16 开始,flutter create使用插件 DSL 生成的项目将使用 Gradle 插件。使用 Flutter 3.16 之前版本创建的项目需要手动迁移。

以上是官网原话https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply,

基本上修改文件:

setting.gradle文件:大致如下

Dart 复制代码
pluginManagement {
    def flutterSdkPath = {
        def properties = new Properties()
        file("local.properties").withInputStream { properties.load(it) }
        def flutterSdkPath = properties.getProperty("flutter.sdk")
        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
        return flutterSdkPath
    }()

    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0" // apply true
    id "com.android.application" version "{agpVersion}" apply false
    id "org.jetbrains.kotlin.android" version "{kotlinVersion}" apply false
}

include ":app"

android/build.gralde文件 大致如下

Dart 复制代码
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

android/app/build.gralde文件内容改动较多,请看原文:https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply,

配置上上面的文件,还有一个大问题:最大的兼容性问题通常来自于 Gradle 和插件版本不匹配,所以会导致android编译不通过。会有很多三方的namespace问题,这个问题简单的解决方案就是去对应的三方的路径下:举例

/Users/xxx/.pub-cache/hosted/pub.dev/wakelock-0.4.0/android/build.gradle

去这个里面加上namespace。

这个.pub-cache文件下的内容在flutter clean下是不会被销毁的。如果想一劳永逸,则建议要么换最新的三方,要么就是用三方置入的方式。

尽量不要一次性改动很多的三方,以免产生各方依赖及缓存问题。

2------------ios

iOS部分:相比gradle的升级很多问题来说,ios的相对少很多,更新的较多的三方只会有一个比较麻烦的问题就是

许久不升级,当flutter dart 还有各种三方的widght都升级时候,这个时候flutter pub get 没问题了, pod update / install都没问题了 但是运行到iPhone真机上的时候就会报错:各种三方的问题。如下

Framework 'flutter_image_compress' not found

这个时候去打开去新的Xcode里找到build setttings 搜索:Other Linker Flags 看到一堆引用的三方删除掉原来的链接引用即可。

相关推荐
2501_944448006 分钟前
Flutter for OpenHarmony 衣橱管家App实战 - 智能推荐实现
flutter
菜鸟小芯14 分钟前
【开源鸿蒙跨平台开发先锋训练营】DAY8~DAY13 底部选项卡&我的页面功能实现
flutter·harmonyos
灰灰勇闯IT16 分钟前
Flutter for OpenHarmony:悬浮按钮(FloatingActionButton)最佳实践 —— 强化核心操作,提升用户效率
flutter·华为·交互
雨季66625 分钟前
Flutter 三端应用实战:OpenHarmony “心流之泉”——在碎片洪流中,为你筑一眼专注的清泉
开发语言·前端·flutter·交互
benjiangliu1 小时前
LINUX系统-09-程序地址空间
android·java·linux
一起养小猫1 小时前
Flutter for OpenHarmony 进阶:表达式解析算法与计算器核心实现
算法·flutter·harmonyos
独自破碎E1 小时前
字符串相乘
android·java·jvm
DokiDoki之父1 小时前
边写软件边学kotlin(一):Kotlin语法初认识:
android·开发语言·kotlin
REDcker2 小时前
Telegram Android 源码解析完整文档
android
Big Cole2 小时前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php