记录下flutter开发中碰到的问题。

一、 iOS

自从项目增加了flutter模块后,每次打包就成了噩梦,有时半响有时一天都是莫名其妙的过错。碰到最多的仍是module 'Flutter' not found

flutter开发填坑记录2

今日又看到了一个新报错

Build service could not create build operation: unknown error while handling message: MsgHandlingError(message: "unable to initiate PIF transfer session (operation in progress?)")

实在是处理不完,仍是重启吧。(重启能处理99%的问题)

记录下现在的处理流程,有更好的办法,请留言告知。

1. 整理

(1)shift + command + k 整理项目。

(2)删去Derived Data文件夹(整理Xcode的缓存)

flutter开发填坑记录2

(3)移除Build Phase关于Pods的装备。

flutter开发填坑记录2

删去后的装备,就剩下project的源文件、图片资源和第三方库。

flutter开发填坑记录2

(4)删去Pods文件夹,Podfile.lock和workspace。

flutter开发填坑记录2

(5)关闭Xcode。

2. 更新pub

(1)清空

到flutter的目录下,履行flutter clean

此操作会删去目录下的.ios.android.flutter*等文件。

(2)重建

履行flutter pub get重建flutter module。

3. 装置Xcode依靠

到项目文件夹中履行pod install,履行会将刚刚清除的Pods文件夹重新装置。

假如报错,能够看看Flutter3.3打包iOS填坑记录 – ()需要修改下podhelper.rb。

4. 编译项目

一切都现已整理并重装完成了。打开workspace,等待index的检索完成。开端build

Maybe 仍是会看到 module 'Flutter' not found. 灰心丧气。

(1)此时到Podfile文件中,将install_all_flutter_pods(flutter_application_path)注释,然后履行pod install再次整理flutter相关的依靠。

(2)再次pod install装置依靠。

(3)等index完毕后,build项目。

(4)假如仍是报错,那么重复(1)直到成功停止。。

此计划办法是最笨的办法,有好办法,请给我留言。

二、Android

Android Studio晋级到最新版本Android Studio Flamingo | 2022.2.1后,推荐Gradle晋级到8.0. 碰到报错

Caused by: org.gradle.api.GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

由于第三方库"mobile_scanner"使用的java 1.8,而AS默认现已是Java 17了。作为退让,现在的处理办法为

classpath 'com.android.tools.build:gradle:8.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.22"

Gradle plugin从之前的1.8.20版本回退到1.7.22来处理这个问题。

现已给"mobile_scanner"留言,晋级一下,与时俱进。

AGP的晋级是抛弃了,再等等吧。 实在是处理不完过错啊。

Tips

  1. CocoaPods 晋级到 1.12.1处理iOS的一个编译问题building file list … rsync。
  2. mobile_scanner 在iOS的扫码功率仍是用iOS原生高。增加一个AVCaptureMetadataOutputObjectsDelegate来回来内容。