Mac中:找到debugserver

方式1:从iPhone中导出debugserver到Mac

  • 前提

    • 之前连接过Xcode去调试过此iPhone,则应该就可以找到/Developer/usr/bin/debugserver
    • 已实现ssh免密登录,所以可以直接用scp去拷贝
  • 操作

    scp root@192.168.0.58:/Developer/usr/bin/debugserver .
    
    • 参数说明
      • rootssh的用户名
      • 192.168.0.58:iPhone的IP
      • /Developer/usr/bin/debugserveriPhone中的debugserver的所在目录,原始的debugserver
      • .:当前文件夹

方式2:从合适版本的DeveloperDiskImage.dmg中提取出debugserver

也可以自己从Xcode对应目录中,找个相同(或最接近的版本的)DeveloperDiskImage.dmg

  • 举例
    • 此处就没找到,和此处iOS 12.5.7iPhone6匹配的:iOS 12.5的,只能找最接近的iOS 12.4
      • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/12.4/
        • mac_xcode_support_ios_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.1iPhone7中拷贝出的(且重签名后的)debugserver,放到iOS 12.4.7iPhone6中去运行,结果直接报错:

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

debugserver_dyld_symbol_not_found_abort_trap_6

所以说结论就是:

至少是,iOS的大版本不同的话,就像此处的:

  • iOS 12
    • iOS 12.5.7
  • iOS 13
    • iOS 13.3.1

则对应的debugserver,是无法通用的。

results matching ""

    No results matching ""