决定一个app是否能被debug,关键是在于编译后的code sign entitlements 。
只要在 entitlement 里面添加如下字段:
<key>get-task-allow</key>
<true/>
2、使用ldid 工具,导出其code sign
ldid -e helloworld >> helloworld.txt
3、修改其code sign,添加上述字段
4、重新对齐进行code sign
ldid -Shelloworld.txt ./helloworld
5、copy 回 设备上,修改权限为 755
chmod 755 ./helloworld
6、打开XCode -》Product -》Attach to Process -> By Process PID 填入 helloworld
只要在 entitlement 里面添加如下字段:
<key>get-task-allow</key>
<true/>
就代表该执行文件可以被debug。
修改方法如下:
1、将需要debug的执行文件copy到 mac上。2、使用ldid 工具,导出其code sign
ldid -e helloworld >> helloworld.txt
3、修改其code sign,添加上述字段
4、重新对齐进行code sign
ldid -Shelloworld.txt ./helloworld
5、copy 回 设备上,修改权限为 755
chmod 755 ./helloworld
6、打开XCode -》Product -》Attach to Process -> By Process PID 填入 helloworld
启动程序则自动开始调试。
当然,这个方法适合越狱设备,因为这样才能对其赋予权限。
app也必须是不通过apple store发布的版本,因为apple会对每个app 进行签名加密。
将来会说明一下如何对加密的设备进行debug。