Mac中:找到debugserver
方式1:从iPhone中导出debugserver到Mac
前提
- 之前连接过Xcode去调试过此iPhone,则应该就可以找到
/Developer/usr/bin/debugserver- 详见:debugserver
- 已实现ssh免密登录,所以可以直接用scp去拷贝
- 之前连接过Xcode去调试过此iPhone,则应该就可以找到
操作
scp root@192.168.0.58:/Developer/usr/bin/debugserver .- 参数说明
root:ssh的用户名192.168.0.58:iPhone的IP/Developer/usr/bin/debugserver:iPhone中的debugserver的所在目录,原始的debugserver.:当前文件夹
- 参数说明
方式2:从合适版本的DeveloperDiskImage.dmg中提取出debugserver
也可以自己从Xcode对应目录中,找个相同(或最接近的版本的)DeveloperDiskImage.dmg:
- 举例
- 此处就没找到,和此处
iOS 12.5.7的iPhone6匹配的:iOS 12.5的,只能找最接近的iOS 12.4的/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/12.4/
- 双击后会自动挂载到Mac中的Volume:
/Volumes/DeveloperDiskImage/ - 从中提取出
/usr/bin/debugserver即可- 对应完整路径就是:
/Volumes/DeveloperDiskImage/usr/bin/debugserver
- 对应完整路径就是:
- 此处就没找到,和此处
常见问题
debugserver运行报错:dyld Symbol not found Abort trap 6
此处直接尝试用,之前从某个iOS 13.3.1的iPhone7中拷贝出的(且重签名后的)debugserver,放到iOS 12.4.7的iPhone6中去运行,结果直接报错:
iPhone6-1257:/Developer root# which debugserver
/usr/bin/debugserver
iPhone6-1257:/Developer root# debugserver --version
dyld: Symbol not found: ___chkstk_darwin
Referenced from: /usr/bin/debugserver (which was built for iOS 13.3)
Expected in: /usr/lib/libSystem.B.dylib
in /usr/bin/debugserver
Abort trap: 6

所以说结论就是:
至少是,iOS的大版本不同的话,就像此处的:
iOS 12iOS 12.5.7
iOS 13iOS 13.3.1
则对应的debugserver,是无法通用的。
