[iOS] TemporaryWorkaround for Black Launch Screen Bug After Several Launches
暫時 Workaround 解決 XCode Build & Run App 卡黑屏問題
Photo by Etienne Girardet
問題
不知道是 XCode 幾開始 (應該是 14?) 有些專案在 Build & Run 到模擬器多次之後會出現卡死在黑屏的問題,狀態卡在 Launching Application… 就沒有反映了;重新 Build & Run 也沒用,需要手動砍掉整個模擬器讓他重啟才能修復。
XCode 14.1: Stuck at “Launching Ap. . . | Apple Developer Forums Hello team, On Xcode 14.1, After building the project and when the simulator launches, it shows blank black screen… forums.developer.apple.com
新專案、新的專案設定比較少遇到這問題;舊的專案比較常踩到,但舊專案礙於歷史悠久、設定複雜,查網路資料也查不到確定的 Root Caused,多半推測是 XCode Bug (or M1?);但是這個問題實在太煩了,時常 Build & Run 要看成果,結果一片黑暗,要整個重來過,每次大概要浪費個 1–2 分鐘,很中斷開發。
Workaround
這邊提供一個山不轉路轉的 Workaround,思路是既然避不開黑屏問題,並且黑屏不會出現在模擬器第一次啟動的 Build & Run,所以我們只要確保每次 Build & Run 都是全新重開過的模擬器即可。
首先我們要取得你想要執行的模擬器的
Device UUID
在 Terminal 執行:
1
xcrun simctl list devices
- 找到你想用的模擬器裝置及它的 Device UUID
-
這邊以我的 iPhone 15 Pro (iOS 17.5) 為例 Device UUID =
08C43D34–9BF0–42CF-B1B9–1E92838413CC
再來我們新增一個
auto-reboot.sh
Shell Script 檔案
-
cd /你想放此 Script 的目錄/
-
vi auto-reboot.sh
貼上以下 Scirpt:
-
將
[Device UUID]
替代成你想用的模擬器 Device UUID - 記得如果模擬器有更換要改這個腳本的 Device UUID,否則就無效了
1
#!/bin/bash
## Use the command below to find the Device UUID of the simulator you want to use:
## xcrun simctl list devices
# shutdown simulator
xcrun simctl shutdown [Device UUID]