前言
由於種種問題,專案的 flutter 版本使用的是 Flutter 1.12.13+hotfix.8,沒有對其升級,升級後怕影響專案,我是一直想著去升級它,但是同事不同意,怕出錯了麻煩,畢竟坑真的很多,專案又要一直迭代,沒有那麼多時間去整理這些。由於 flutter 沒有升級到最新版,所以 Xcode12.0 以後的版本也匹配不上,導致跑不起來真機,自己又是iOS 開發者,公司電腦一直用的是 Xcode11的版本,自己電腦用的xcode12.4 的版本,有時搞搞 SwiftUI必須要用 Xcode12以後的版本,有升級強迫症的我著實有點難受,今天實在忍受不了,閒來沒事看看有沒有方法可以不升級 flutter版本,又能使用 Xcode以後的版本,皇天不負划水人,終於給我找到了,哈哈哈哈。
flutter 入門到精通教學視訊 百度網盤連結: pan.baidu.com/s/1XmYXyTEF… 密碼: 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地址:github.com/ios-control…,選擇最新的版本把 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 了。