App 在上架以后就无法使用 Xcode 调试了,因为允许 Xcode 调试的标识 get-task-allow
已经被去掉。
那么重新给 App 的 entitlements 设置 get-task-allow
为 true
就可以调试了。
安装
ldid
(Link Identity Editor)开启
get-task-allow
,用户安装的 App 都是被安装在/private/var/containers/Bundle/Application
里。因为有沙盒保护,所以路径都使用 UUID 随机化了,比如 GitHub Mobile 在我的手机上的路径就是:
60D2C0CB-62E9-4B11-BD66-16286C4D3474/GitHub.app
使用 SSH 连接手机,在命令行下导出 App 的 entitlements:
cd GitHub.app ldid -e GitHub >> GitHub.xml
编辑 GitHub.xml 我使用的工具是 Filza,开启
get-task-allow
:<key>get-task-allow</key> <true/>
编辑好以后保存文件,然后重新签名:
ldid -SGitHub.xml GitHub
注意:以上命令中的
-S
和参数之间不要有空格,否则命令会出错。执行命令之前要做好相关的数据备份,这个命令可能会使 APP 重置(比如微信会清掉所有缓存的数据,包括聊天记录)。
现在重新打开 GitHub.app 就可以被 Xcode 附加调试了: