使用 Jitterbug 免越獄開(kāi)啟 iOS 設(shè)備的 JIT 運(yùn)行權(quán)限
摘要
Jitterbug 是 UTM 的作者 @osy86 發(fā)布的一個(gè) iOS?app。它的功能是讓 iOS 在沒(méi)有 Xcode 附加調(diào)試器的情況下,也可以運(yùn)行需要 JIT 的 app,例如:UTM 虛擬機(jī),海豚模擬器,PPSSPP 等。本文是 Jitterbug 的使用教程。
項(xiàng)目主頁(yè):https://github.com/osy/Jitterbug。
中文翻譯:https://zkxblog.xyz/archives/Jitterbug-docs.html。
背景
目前(2021 年 6 月 5 日),iOS 上唯二可運(yùn)行 JIT app 的版本是 iOS 14.2 與 14.3,其他情況下需要對(duì)設(shè)備進(jìn)行越獄才可以開(kāi)啟 JIT 的運(yùn)行權(quán)限。蘋(píng)果在后續(xù)的 iOS 版本均未解禁 JIT 的運(yùn)行權(quán)限。需要 JIT 運(yùn)行權(quán)限的 app 只能通過(guò) Xcode 附加調(diào)試器的形式來(lái)臨時(shí)解禁。
Jitterbug 介紹及運(yùn)行條件
Jitterbug 是一個(gè)模擬 Xcode 附加調(diào)試器的 iOS app,運(yùn)行條件如下:
1、運(yùn)行 iOS 14 或以上的 iOS 設(shè)備
2、一臺(tái)電腦(僅在配對(duì)時(shí)需要)。macOS,Windows 或 Linux 均可。
3、iOS 設(shè)備連接了 Wi-Fi

安裝方法
目前有兩個(gè)方案可以選擇。本機(jī)開(kāi)啟JIT 和 借助另一臺(tái)設(shè)備開(kāi)啟 JIT。
本機(jī)開(kāi)啟 JIT(推薦)
Jitterbug 1.1.0 提供的?本機(jī)開(kāi)啟 JIT 功能?僅可在以下兩種情況下使用:
· Jitterbug 通過(guò)付費(fèi)的開(kāi)發(fā)者賬號(hào)簽名安裝
· 設(shè)備已越獄(如果你設(shè)備越獄了,本身支持 JIT,無(wú)需折騰 Jitterbug)
安裝方法:
1、 https://www.isign.ren (收費(fèi),開(kāi)發(fā)者簽名,有效期最長(zhǎng)?1?年)
2、https://testflight.apple.com/join/J9lKqdEN (免費(fèi),TF簽,有效期90天)
如果你有付費(fèi)的開(kāi)發(fā)者賬號(hào),或者你有一個(gè)朋友能夠幫你使用付費(fèi)的開(kāi)發(fā)者賬號(hào)簽名,完成簽名后安裝到設(shè)備里即可。

借助另一臺(tái)設(shè)備開(kāi)啟 JIT(不推薦)
視頻教程:【預(yù)覽-教程隨后奉上】osy發(fā)布了一個(gè)在iOS開(kāi)啟jit的神器
本例介紹的是:如何讓 iPhone 作為“控制端”,通過(guò)附加調(diào)試器的方式啟動(dòng) iPad 上的 app。兩臺(tái)設(shè)備必須在同一個(gè)局域網(wǎng)里,請(qǐng)按照你的實(shí)際情況操作。
1、下載 1.0.2 版本的 Jitterbug.ipa,下載地址:https://github.com/osy/Jitterbug/releases
2、使用各種旁加載安裝方式安裝此 ipa 到你的?iPhone(控制端),例如 Altstore,愛(ài)思助手,Sideloadly 等自簽名安裝。

Jitterbug 的使用教程
本例演示的被調(diào)試設(shè)備是 iPad,請(qǐng)按你的實(shí)際情況操作。如果文字教程無(wú)法理解某些內(nèi)容,請(qǐng)觀看視頻教程。
1、生成配對(duì)文件
Jitterbug 必須配合 Jitterbugpair 來(lái)使用。Jitterbugpair 是一個(gè)桌面端程序,用于生成配對(duì)文件。根據(jù)你電腦的操作系統(tǒng)下載 jitterbugpair,下載地址:https://github.com/osy/Jitterbug/releases
macOS:
下載?jitterbugpair-macos.zip并解壓
使用 USB 數(shù)據(jù)線將你的?iPad 連接到 Mac
解鎖你的 iPad,如果你是第一次連接?iPad 到電腦,會(huì)彈出“要信任次電腦嗎?”,請(qǐng)選擇“信任”,隨后輸入你的 iPad 鎖屏密碼。
運(yùn)行終端,將解壓后的可執(zhí)行文件“jitterbugpair”拖入到終端窗口內(nèi),回車(chē)
提示“SUCCESS: wrote to [設(shè)備UDID].mobiledevicepairing”則代表生成配對(duì)文件成功。配對(duì)文件在終端的當(dāng)前目錄下,默認(rèn)路徑是你的用戶目錄。
Windows:
下載?jitterbugpair-win64.zip?并解壓
使用 USB 數(shù)據(jù)線將你的?iPad 連接到你的電腦
解鎖你的 iPad,如果你是第一次連接?iPad 到電腦,會(huì)彈出“要信任次電腦嗎?”,請(qǐng)選擇“信任”,隨后輸入你的 iPad 鎖屏密碼。
運(yùn)行“命令提示符”,將解壓后的可執(zhí)行文件“jitterbugpair.exe”拖入到終端窗口內(nèi),回車(chē)
提示“SUCCESS: wrote to [設(shè)備UDID].mobiledevicepairing”則代表生成配對(duì)文件成功。配對(duì)文件在終端的當(dāng)前目錄下,默認(rèn)路徑是你的用戶目錄。
2、導(dǎo)入配對(duì)文件
通過(guò)任意方式(Airdrop,QQ,郵件等)把?步驟1 生成的“?[設(shè)備UDID].mobiledevicepairing”文件發(fā)送到?iPhone 上保存。
運(yùn)行 iPhone 上的 Jitterbug,在 app?底部切換到“Pairings”頁(yè)面,點(diǎn)擊右上角的導(dǎo)入按鈕,導(dǎo)入?步驟1?生成的“?[設(shè)備UDID].mobiledevicepairing”文件。導(dǎo)入成功后文件會(huì)出現(xiàn)在 Pairings 的列表中。
3、導(dǎo)入 DeveloperImage
在 iPad 上使用?Safari 瀏覽器打開(kāi)?https://github.com/xushuduo/Xcode-iOS-Developer-Disk-Image/releases
找到最新的?Developer Disk Image,當(dāng)前最新的版本是?iOS 14.5 Developer Disk Image,下載?14.5.18E5164d.zip 并解壓。你會(huì)得到兩個(gè)文件:DeveloperDiskImage.dmg 和?DeveloperDiskImage.dmg.signature。
在 app?底部切換到“Support Files”頁(yè)面,點(diǎn)擊右上角的導(dǎo)入按鈕,導(dǎo)入?步驟2?下載的?DeveloperDiskImage.dmg 和?DeveloperDiskImage.dmg.signature 文件。導(dǎo)入成功后會(huì)出現(xiàn)在 Support Files 中。
4、運(yùn)行 JIT app
每次啟動(dòng) Jitterbug 都需要手動(dòng)在“設(shè)置 app”關(guān)閉?VPN 的開(kāi)關(guān)。(未來(lái)可能會(huì)修復(fù)這個(gè)bug)切換到 Jitterbug 的 Launcher 頁(yè)面。
A. 如果你使用【本機(jī)開(kāi)啟 JIT】方案,那么直接在 Devices 列表中點(diǎn)擊自己的設(shè)備。
B. 如果你使用【借助另一臺(tái)設(shè)備開(kāi)啟 JIT】方案。那么兩臺(tái)設(shè)備必須處于同一個(gè)局域網(wǎng)下,你應(yīng)該可以在運(yùn)行 Jitterbug 的設(shè)備主頁(yè)的 Devices 列表中找到你的被調(diào)試設(shè)備,點(diǎn)擊此設(shè)備。
如果Jitterbug 詢問(wèn)你使用哪個(gè)配對(duì)文件,在列表中選擇導(dǎo)入的配對(duì)文件即可完成配對(duì)。
如果Jitterbug請(qǐng)求選擇磁盤(pán)鏡像和簽名文件,請(qǐng)?jiān)谔崾尽癝elect Image”的時(shí)候,選擇導(dǎo)入dmg文件,提示“Select Signature”的時(shí)候,選擇導(dǎo)入signature文件。
如果你導(dǎo)入的配對(duì)文件是正確的,此時(shí) Jitterbug 將會(huì)列出被調(diào)試設(shè)備上安裝的所有 app,在列表中找到對(duì)應(yīng) app?并點(diǎn)擊,即可開(kāi)啟它的 JIT 運(yùn)行權(quán)限。


故障排除
1、在Devices列表中選擇設(shè)備時(shí)提示“Failed to communicate with device”
解決方法:請(qǐng)確保設(shè)備已解除鎖定,已連接Wi-Fi,并且步驟一導(dǎo)入的配對(duì)文件是有效的。

2、提示“Unknown error occurred, can't mount” 無(wú)法掛載 Developer Image 錯(cuò)誤
解決方法:手動(dòng)關(guān)閉 Jitterbug 和 設(shè)置app 的 VPN 開(kāi)關(guān)再嘗試。
