一、 iOS
(资料图片)
自从项目添加了flutter模块后,每次打包就成了噩梦,有时半天有时一天都是莫名其妙的错误。碰到最多的还是module 'Flutter' not found。
编辑切换为居中
今天又看到了一个新报错
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的缓存)
编辑切换为居中
(3)移除Build Phase关于Pods的配置。
编辑切换为居中
删除后的配置,就剩下project的源文件、图片资源和第三方库。
编辑切换为居中
(4)删除Pods文件夹,Podfile.lock和workspace。
编辑切换为居中
(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填坑记录 - 掘金 (juejin.cn)需要修改下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
CocoaPods 升级到 1.12.1解决iOS的一个编译问题building file list ... rsync。
mobile_scanner 在iOS的扫码效率还是用iOS原生高。添加一个AVCaptureMetadataOutputObjectsDelegate来返回内容。
Copyright @ 2015-2022 中国砍柴网版权所有 备案号: 沪ICP备2022005074号-4 联系邮箱:58 55 97 3@qq.com