前言
由于种种问题,项目的 flutter 版本使用的是 Flutter 1.12.13+hotfix.8,没有对其升级,升级后怕影响项目,我是一直想着去升级它,但是同事不同意,怕出错了麻烦,毕竟坑真的很多,项目又要一直迭代,没有那么多时间去整理这些。由于 flutter 没有升级到最新版,所以 Xcode12.0 以后的版本也匹配不上,导致跑不起来真机,自己又是iOS 开发者,公司电脑一直用的是 Xcode11的版本,自己电脑用的xcode12.4 的版本,有时搞搞 SwiftUI必须要用 Xcode12以后的版本,有升级强迫症的我着实有点难受,今天实在忍受不了,闲来没事看看有没有方法可以不升级 flutter版本,又能使用 Xcode以后的版本,皇天不负划水人,终于给我找到了,哈哈哈哈。
flutter 入门到精通教学视频
百度网盘链接: https://pan.baidu.com/s/1XmYXyTEFnkqveo8yZETv6w 密码: 2kop
先来看一下flutter报的错误信息
Running Xcode build...
├─Assembling Flutter resources... 4.4s
└─Compiling, linking and signing... 8.0s
Xcode build done. 20.7s
═══════════════════════════════════════════════════════════════════════════════════
Error launching app. Try launching from within Xcode via:
open ios/Runner.xcworkspace
Your Xcode version may be too old for your iOS version.
═══════════════════════════════════════════════════════════════════════════════════
2021-02-24 00:10:19.786 ios-deploy[49095:316027] [ !! ] Error 0xe8000022: The service is invalid. AMDeviceSecureStartService(device, CFSTR("com.apple.debugserver"), NULL, &con)
Could not install build/ios/iphoneos/Runner.app on 00008030-0006204E1A78802E.
Try launching Xcode and selecting "Product > Run" to fix the problem:
open ios/Runner.xcworkspace
Installing and launching... 7.9s
Error launching application on James.
原因
原因是 flutter中配置 iOS 版本的文件与 xcode 最新版不兼容,毕竟iOS版本更新快,flutter 也在不断升级更新,在 flutter SDK的目录中 ios-deploy 文件夹配置 iOS 的版本信息,我们只要更新这个文件夹的内容就可以解决问题了。
ios-deploy 目录位置: flutter/bin/cache/artifacts/ios-deploy
解决方法
我们只需要更新 ios-deploy目录的 ios-deploy 就可以解决这个问题。
1.ios-deploy地址:ios-deploy下载,选择最新的版本把 source code下载下来
2.用Xcode打开ios-deploy.xcodeproj,选中ios-deploy跟 My Mac,注意此时的 Products目录下的 ios-deploy 还是红色的,是没有的,然后跑一下,就会生成一个 ios-deploy程序。
3.点击products 目录里面的 ios-deploy 右键选择 Show in Finder,跳到文件夹目录
4.拷贝 ios-deploy 程序放到 flutter SDK 目录的 ios-depoly 里面替换到原来的
5.最后重启 vs code,就是你编写项目的应用程序,就可以使用低版本的 flutter,跑最新版的 Xcode 了。