首页
社区
课程
招聘
[分享]Xcode 调试设备应用
发表于: 2016-10-9 14:28 10252

[分享]Xcode 调试设备应用

2016-10-9 14:28
10252
在iOS 设备上(iPhone、 iPad等)调试比如微信、支付宝等别人家的应用的时候,用lldb 可以进行调试,但是lldb 蛋疼的命令行让人很不爽,所以尝试用Xcode attach 现有应用进行调试

Code signing Entitlements中有一项很重要的key值,就是get-task-allow,作用如下:

get-task-allow, when signed into an application, allows other processes (like the debugger) to attach to your app. Distribution profiles require that this value be turned off, while development profiles require this value to be turned on (otherwise Xcode would never be able to launch and attach to your app).

也就是说,get-task-allow决定了这个app能否被Xcode调试。一般来说,上架了的程序,这个key值为空,默认为NO。

真机上的app,若不是自己build进去的,基本没有调试的权限。原因在于get-task-allow没有开启。若要开启,步骤如下:

以MobileSafari为例

在越狱iOS设备上,找到MobileSafari 这个执行文件(系统应用在/Application/MobileSafari.app/ 目录下,AppStore 下载的应用在/private/var/containers/Bundle/Application/ID/XXX.app),拷贝到Mac上
利用ldid将MobileSafari的code sign导出:
ldid -e MobileSafari >> MobileSafari.xml
打开MobileSafari.xml添加get-task-allow这个key,并赋值为true,保存退出
<key>get-task-allow</key>
<true/>

对MobileSafari进行重签名:
ldid -SMobileSafari.xml ./MobileSafari 
将MobileSafari重新拷贝回iOS设备,声明下权限(原本就有755权限了):
chmod 755 ./MobileSafari 
然后就大功告成了
在设备上启动Safari,打开Xcode,在Debug → Attach to Process → [process name]。就可以调试了
如果在越狱的iOS 设备上有ldid,则可以直接在设备上进行签名导出 → 添加键值 → 重新签名的流程

注意:
1、在想要attach 到设备上的应用需要先选中设备

2、调试时的终端显示在Windows → device → [设备] 中


参考资料
iOS调试技巧(3)—— Attach to Process with Xcode

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 7
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
进来看看,mark一下--娜迦
2016-10-9 16:22
0
雪    币: 393
活跃值: (224)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
3
mark
2016-10-9 17:55
0
雪    币: 45
活跃值: (154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark
2016-10-25 13:52
0
雪    币: 229
活跃值: (94)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
8.0的pad   加了get-task-allow后 重新签名  并且赋予可执行权限     运行程序会闪退是什么鬼?
2016-11-11 10:53
0
雪    币: 140
活跃值: (125)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
wswm 8.0的pad&nbsp; &nbsp;加了get-task-allow后 重新签名&nbsp;&nbsp;并且赋予可执行权限&nbsp; &nbsp; ...
是否可以针对 get-task-allow进行检测呢 ?
2017-3-7 21:05
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有没有直接bypass掉get-task-allow检测的tweak?
2017-3-16 16:57
0
游客
登录 | 注册 方可回帖
返回
//