在開發 Flutter 應用時,有時會在嘗試將應用部署到 iOS 真機時遇到構建失敗的問題。錯誤信息通常類似于以下內容:
Could not build the precompiled application for the device.
Uncategorized (Xcode): Timed out waiting for all destinations matching the provided destination specifier to become availableIneligible destinations for the "prod" scheme:{ platform:iOS, arch:arm64, id:00008110-000A0D463E07801E, name:xxx的iPhone, error:Device is busy (Waiting to reconnect to xxx的iPhone) }Error launching application on xxx的iPhone.
這種錯誤通常是由于 Xcode 或設備連接問題導致的。以下是一些解決方法:
1. 重啟 Xcode 和 Android Studio
根據經驗,簡單地重啟 Xcode 和 Android Studio 可能會解決大多數類似問題。關閉這兩個工具后重新打開,然后再次嘗試運行應用。
2. 檢查設備連接
- 確保設備已正確連接到 Mac,并且沒有其他軟件(如 iTunes 或其他同步工具)正在使用該設備。
- 如果設備電量不足,可能會導致連接不穩定,確保設備電量充足。
3. 清理項目
運行以下命令清理項目,然后重新構建:
flutter clean
flutter pub get
這可以清除舊的構建文件和緩存,避免因緩存問題導致的構建失敗。
4. 檢查 Xcode 的 DerivedData 文件夾
有時,Xcode 的 DerivedData 文件夾可能會導致構建問題。嘗試刪除該文件夾:
- 打開終端,運行以下命令:
rm -rf ~/Library/Developer/Xcode/DerivedData
- 然后重新運行應用。
5. 更新 Flutter 和 Xcode
確保你使用的是最新版本的 Flutter 和 Xcode。舊版本可能存在兼容性問題。運行以下命令更新 Flutter:
flutter upgrade
同時,檢查 Xcode 是否有可用的更新,并安裝最新版本。
6. 檢查設備是否處于“忙碌”狀態
如果設備正在安裝系統更新或應用更新,可能會導致設備忙。等待更新完成后再嘗試運行應用。
7. 檢查 Xcode 的日志
如果問題仍然存在,建議查看完整的 Xcode 構建日志,以獲取更多詳細的錯誤信息。你可以通過以下步驟查看日志:
- 在 Xcode 中,選擇 View > Navigators > Reports。
- 選擇與應用構建相關的報告。
- 使用過濾欄選擇 All 和 All Messages,然后點擊 Export 保存詳細日志。
通過以上步驟,你應該能夠解決在 iOS 真機上構建 Flutter 應用時遇到的超時問題。如果問題仍未解決,可以嘗試在 Flutter 社區或 GitHub 上尋求更多幫助。