1、不喜欢使用命令行的小伙伴,可以选择  iFunBox  或者其他的 工具查看文件目录。

2、注意:在使用ldid对 debugserver签名的时候,键入命令: ldid -Sentitlement.xml debugserver   命令中 -S 与 entitlement.xml之间没有空格。

文章出处:http://bbs.pediy.com/showthread.php?t=190126

因为Apple已经弃gdb投lldb,所以随着我动态调试的次数越来越频繁,gdb上一个接一个的bug经常会让人很恼火。既然苹果打算建立自己的调试器王国,也投入了钱力精力,那我们干脆也上手lldb玩玩,看看lldb是不是比gdb要更好用(以下操作在iPhone 5,iOS 7.0.4上测试,应该也适用于arm64,如果不行,请参照iphonedevwiki)。
使用的工具
Otool             ——查看程序依赖哪些动态库信息,反编代码段……等等等等
Ldid               ——签名工具,通过plist文件指定了授予一应用的一组特权
Gdbserver     ——调试工具
SSH               ——远程控制
Lipo               ——合并拆分对支持不同芯片的mach-o

一.定制一个可以调试的debugserver
1.下载编译ldid
git clone git://git.saurik.com/ldid.git
cd ldid
git submodule update --init
./make.sh

完成以上操作会在ldid目录下生产一个mac 可执行程序 ldid。
2.获取debugserver和ARMDisassembler.framework
我这以xcode 5.1.1的版本为例。
找到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/7.1 (11D167)/DeveloperDiskImage.dmg

如果你在Mac那双击它,你会看到如下目录:

红色框圈起来的就是我们需要使用到的部分,此时你一定很高兴的看到了debugserver,但是别高兴的太早了,我们还要对这个debugserver做下处理,使其能正常的调试起来。
将ARMDisassembler.framework 拷贝到手机上/System/Library/PrivateFrameworks目录下。
很多人一定奇怪为啥要这步骤,你们可以自己试试,去掉ARMDisassembler.framework与存在ARMDisassembler.framework,在LLDB调试的过程看ARM反汇编的质量和效果。
我这边使用scp拷贝到设备上去:

# cd /Volumes/DeveloperDiskImage/Library/PrivateFrameworks
# scp -r -p 22 ARMDisassembler.framework root@192.168.20.21:/System/Library/PrivateFrameworks

3.提取对应设备版本的debugserver,并对其签名授予特权
1) 提取对应的debugserver(由于ldid不支持对FAT文件格式的mach-o签名,所以需要提取对应版本)
lipo -thin armv7 /Developer/usr/bin/debugserver -output ~/debugserver
lipo -thin armv7S /Developer/usr/bin/debugserver -output ~/debugserver
lipo -thin armv64/Developer/usr/bin/debugserver -output ~/debugserver

以上根据自己手机支持的armv7、armv7s、arm64提取,我这边以iphone5为例,是armv7,所以我使用
# cd Development/DeveloperDiskImage/usr/bin/
# mv debugserver _debugserver
# lipo -thin armv7 _debugserver -output debugserver

2) 保存以下授予特权内容为entitlement.xml
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>com.apple.springboard.debugapplications</key>
     <true/>
     <key>get-task-allow</key>
     <true/>
     <key>task_for_pid-allow</key>
     <true/>
     <key>run-unsigned-code</key>
     <true/>
</dict>
</plist>

3) 使用ldid对debugserver签名授予特权
# ldid -Sentitlement.xml debugserver
将签名授予特权的debugserver拷贝到手机/usr/bin目录下
# scp -p 22 debugserver root@192.168.20.21:/usr/bin/

4) 测试debugserver是否安装成功(如下正常)
# debugserver 192.168.40.45:12345 -a "PPAppInstall"
  debugserver-310.2 for armv7.
  Attaching to process PPAppInstall...
  Listening to port 12345 for a connection from 192.168.40.45...

参考链接:
http://www.iphonedevwiki.net/index.php/Debugserver

安装debugserver到iPhone上相关推荐

  1. iTunes 安装ipa文件到iPhone上

    iTunes 安装ipa文件到iPhone上 把ipa文件拖到itunes里面. ipa(iPhoneApplication) 菜单 File>Add File to Library>Se ...

  2. 在iphone上安装多个微信 【微信营销必备】

    做微信营销有很多因素会影响,xmyanke认为微信消息的活跃度会让你的微信公众号在微信搜索排名靠前,既然那样,我们可以通过运营几个小号来达到目的.每每当你在几个微信小号之间切换的时候有没要奔溃的赶脚? ...

  3. iphone上安装android系统,如何在iPhone上安装Android操作系统?

    关于"如何在iPhone上安装Android操作系统?"相关问题,库巴帮助小帮手为您解答. 本文是教各位如何安装谷歌的Android操作系统到iPhone上.事先警告,动手能力不强 ...

  4. ipad iphone开发_如何在iPad或iPhone上安装字体

    ipad iphone开发 You can install nearly any TrueType (.ttf) or OpenType (.otf) font on your iPad or iPh ...

  5. iPhone 实用技巧 之 快速使用iTools安装ipa软件。本节简单介绍如何使用iTools安装在iPhone上安装ipa软件

    iPhone 实用技巧 之 快速使用iTools安装ipa软件.本节简单介绍如何使用iTools安装在iPhone上安装ipa软件,具体如下 目录 iPhone 实用技巧 之 快速使用iTools安装 ...

  6. java程序能安装到iphone_iPhone应用程序从Xcode安装在iPhone上,但崩溃了

    我通过配置文件添加了我的设备(iPhone),创建了正确的配置文件并完成了Apple开发指南所做的所有操作,但是当我尝试在我的iPhone上测试我的应用程序时,它会安装,但一旦运行,它就不会在它崩溃之 ...

  7. 如何使用xcode将应用安装到IPhone上

    使用xcode部署应用到IPhone上 前两天做了一个cocos的小项目,想部署到手机上玩一玩,看了一些博客,觉得写得很一般,于是乎看了一些外国的博客,其中一个叫LiveCode的网站对于我的帮助不小 ...

  8. 在iphone上安装linux的一种方法(无需越狱)

    在iphone上安装linux的一种方法-在iOS上安装iSH 1 安装iSH iSH是一个使用usermode x86模拟器将Linux shell引入IOS设备的工具,基于Alpine Linux ...

  9. 安装 ssh 的公开密匙到 iPhone 上

    1). 在Mac的终端上产生密匙 ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to sa ...

最新文章

  1. php去掉字符串的最后一个字符 substr()的用法
  2. js实现点击li标签弹出其索引值
  3. ESP8266 WiFi探针 MAC
  4. 计算机系统基础:数字的机器表示
  5. Android之系统架构
  6. MySQL 学习二:高手必备!MySQL 增删改查高级命令大全硬核总结!
  7. PHP笔记-随机生成cookie、后台检索、通过session获取ID增强安全性
  8. 20140505 科技脉搏 - “社交”这棵老树,依然在开着新花
  9. Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP
  10. 14 事务控制和锁定语句
  11. 添加ejs后页面空白解决办法
  12. linux mysql5.7.12安装图解_centos 安装 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 详细步骤
  13. paper pass论文查重很好用
  14. java对接快递单号查询自动识别api接口,调用代码示例
  15. Hive集成Tez让大象飞起来
  16. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
  17. jQuery 即点即改
  18. Python爬虫:猫眼电影反爬—动态字体处理(2020)
  19. 永恩上线服务器维护,lol永恩多久上线-英雄联盟:激斗峡谷(国际服 LOL:Wild Rift)问答专区-OurPlay...
  20. Docker系列 WordPress系列 个人博客的广告展示

热门文章

  1. 什么是python自动化测试?
  2. 【Java基础】Debug模式操作流程及案例:不死神兔、百钱百鸡
  3. 为什么要处理子线程中的异常?不处理可以吗?那该如何处理?
  4. 商场会员营销系统 购物中心会员精细化运营体系
  5. BUFF:iPad真的能当砧板用
  6. MFC 绘制半透明图片
  7. 本机可以访问8080端口,外网不能访问的解决方案
  8. 记录一下我在lubuntu里面用到的工具
  9. Chrome浏览器怎么调试网页标题字体大小和颜色?
  10. 【Python从入门到精通】二、核心编程:5.正则表达式