不升級Xcode, 不升級Mac, 依然能好好Debug iOS13

本文首發於公衆號【UC研發效能】git

引言

蘋果慣例一年一度大升級一次iOS, 會把相關開發工具和系統都升級一遍, 十分蛋疼, 不少時候, 咱們還不想升級XCode, 更不想升級系統, 特別是beta版的時候, 同時安裝2個XCode, 十分噁心. 對於Mac OS還好, 大部分狀況的新版XCode均可以支持到當前主流的系統版本, 若是不是Mac開發者, 基本不用去折騰beta版的Mac.
其實一直以來都有方法, 去使用任何的XCode版本去調試當前XCode版本不支持的iOS系統.github

如何作?

使用舊XCode調試新的iOS系統

若是你的Mac插入iPhone後, XCode能正常識別出來, 那就只須要打開這個目錄markdown

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupportapp

把對應裏面沒有, 並且你又須要的系統DeviceSupport複製進去便可, 而後重啓XCode後, 等XCode生成對應系統的符號表, 便可開始調試.ide

對應的iOS系統DeviceSupport的文件, 能夠到github 找一找工具

若是XCode識別不到你的機器

你能夠下載新的XCode, 解壓後, 在 Xcode.app/Contents/Resources/Packages 下能找到MobileDevice.pkg, 直接安裝就能夠.oop

什麼是DeviceSupport?

能夠簡單看到DeviceSupport的每一個系統版本的文件夾裏面, 都只有2個文件, DeveloperDiskImage.dmg和DeveloperDiskImage.dmg.signature.
XCode鏈接上手機時, 會自動掛載對應的DeviceSupport, 想手動掛載上去也能夠經過ideviceimagemounter指定對應的DeviceSupport去掛載, DeviceSupport裏面的東西權限很是大, 咱們也有想過替換裏面的東西, 但是無奈終究仍是繞不過dmg的簽名, iPhone直接拒絕掛載 /(ㄒoㄒ)/~~ 在歷史iOS版本的越獄工具裏, 也有大神利用了DeveloperDiskImage的漏洞.

那樣DeviceSupport裏面是有些什麼呢?
若是在Mac下掛載DeveloperDiskImage.dmg後, 能夠看到裏面是這樣的
開發工具

image.png

iOS掛載DeveloperDiskImage後, LaunchDaemons裏面的服務啓動時自動加載, Lockdown裏面的服務, 則能夠經過usbmuxd發消息去調用, 另外裏面有不少咱們日常熟悉的服務和工具, 有興趣深挖一下.

MobileDevice.pkg 是幹什麼的?

使用蘋果的PackageMaker查看這個pkg, 能夠看到蘋果更新的相關的驅動和相關依賴庫
spa

image.png

Mac下安裝不明來歷的pkg是很是危險的..
調試

image.png

關於UC研發效能

研測領域資深專家團隊,依託UC十餘年移動技術沉澱,全力打造專業的研發效能平臺。服務於阿里巴巴100+產品,爲團隊下降研測成本、提高交付效率,助力產品提高用戶體驗,讓產品交付更好更快更安心。

image.png
相關文章
相關標籤/搜索