iOS部份模擬器APP需要JIT加速技術才能獲得最佳效能,例如UTM、PojavLauncher,然Apple不允許搭載JIT的APP上架App Store,故他們只能以側載方式啟動JIT,而且啟用條件很麻煩。比如iOS 17以上版本, AltJIT得依賴Mac電腦才能啟動JIT,且啟用JIT的時候不能斷開USB連線。
後來我找到了SideJITServer,此為nythepegasus製作的開源JIT啟動器。這個軟體比AltJIT的啟用方式容易的多,不再限定只有Mac才能使用,讓Linux和Windows的用戶也能受惠。
1. 注意事項#
- SideJITServer支援Linux、Windows、macOS、Raspberry Pi OS
- 僅支援iOS 17、iOS 18以上的iPhone/iPad
- 要啟用JIT的APP必須是 側載的IPA,App Store的APP無法使用JIT。
2. 安裝SideJITServer套件#
確認電腦認得到iOS裝置。Linux安裝 libimobiledevice套件;Windows安裝 iTunes。
安裝 Python3
開啟終端機,建立Python虛擬環境
python3 -m venv venv
- 進入虛擬環境
# Linux/macOS
source venv/bin/activate
# Windows
venv\Scripts\Activate.ps1
- 安裝SideJITServer
pip3 install SideJITServer
- 啟動伺服器。
SideJITServer --pair
註:Linux可能需要使用root執行,否則會找不到裝置。並且要開放防火牆8080通訊埠。
deactivate
sudo ufw allow 8080
sudo ufw reload
sudo -E env PATH=${PATH} venv/bin/SideJITServer --pair
將iOS裝置插上電腦,在螢幕上點選同意「信任此電腦」
伺服器啟動的時候應該會看到
Client ID
,那就是你裝置的UDID,按下Enter伺服器執行的時候不要拔掉傳輸線。
如果程式執行出錯,請參考 SideJITServer的requirements.txt,嘗試切換pymobiledevice3套件版本,再手動與iOS裝置配對。以下是Linux的作法:
source venv/bin/activate
pip uninstall pymobiledevice3
pip install pymobiledevice3==4.11.20
deactivate
sudo systemctl restart usbmuxd
sudo idevicepair pair
sudo -E env PATH=${PATH} venv/bin/SideJITServer --pair
3. 給APP啟用JIT加速#
用iOS的Safari開啟這個網址: 新增SideJIT捷徑
填入iOS裝置的UDID
還有伺服器位址,格式為
http://電腦區域IP:8080
如果上述欄位打錯,你可以點編輯捷徑,重新修改。
執行SideJIT捷徑,電腦上的SideJITServer應該會印出HTTP連線訊息。
選取要啟用JIT的APP
出現訊息,JIT啟用成功。
JIT僅在APP開啟的時候有效,滑掉重開後JIT就會消失,需要透過電腦重新啟用。
如果使用上有問題,請到Github回報: https://github.com/nythepegasus/SideJITServer