不升级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
相关文章
相关标签/搜索