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文件:大致如下
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 trueid "com.android.application" version "{agpVersion}" apply falseid "org.jetbrains.kotlin.android" version "{kotlinVersion}" apply false
}include ":app"
android/build.gralde文件 大致如下
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 看到一堆引用的三方删除掉原来的链接引用即可。