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 看到一堆引用的三方删除掉原来的链接引用即可。

相关推荐
程序员江同学4 分钟前
ovCompose + AI 开发跨三端的 Now in Kotlin App
android·kotlin·harmonyos
2501_9151063220 分钟前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
消失的旧时光-194328 分钟前
Kotlinx.serialization 使用讲解
android·数据结构·android jetpack
灿烂阳光g2 小时前
SELinux 策略文件编写
android·linux
.豆鲨包2 小时前
【Android】Viewpager2实现无限轮播图
android·java
xiangxiongfly9152 小时前
Android CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现折叠置顶效果
android·折叠
柿蒂2 小时前
从if-else和switch,聊聊“八股“的作用
android·java·kotlin
kymjs张涛3 小时前
零一开源|前沿技术周刊 #16
ios·apple·hacker news
2301_821046523 小时前
Python与Go结合
ios·iphone
Jerry3 小时前
Compose 5 个简短动画,让您的应用脱颖而出
android