使用MonkeyDev针对目标app编写了tweak插件,插件里hook了某个oc类的方法A
当app跑起来之后,附加上调试,继续在方法A上下了一个断点,当程序跑到方法A处时,断点断住,提示如下:
咋看到是我编写的tweak代码源码啊,连写的注释都能看到,这是咋回事?是插件有什么符号需要干掉吗? 有懂的大佬提示一下啊
使用MonkeyDev针对目标app编写了tweak插件,插件里hook了某个oc类的方法A
当app跑起来之后,附加上调试,继续在方法A上下了一个断点,当程序跑到方法A处时,断点断住,提示如下:
咋看到是我编写的tweak代码源码啊,连写的注释都能看到,这是咋回事?是插件有什么符号需要干掉吗? 有懂的大佬提示一下啊
需要改arg1参数的值 然后再丢给原方法执行哦 %orig(arg1);
这跟前后没关系吧 本质上还是想调试的时候 看到的是汇编代码 而不是像现在这样看到文件的源码内容了
估计是你编译安装插件时,用的是默认的debug模式 -》所以带调试符号和源码
去改为release的编译,应该就没调试符号了(除非你故意设置release时也带调试符号)
我发现这个问题的时候就是release模式的 ”除非你故意设置release时也带调试符号“ 这个在哪儿设置的?
啥模式都不管用,就是调试器发现是你的代码,让你更方便看
那别人拿到我这个插件 也能看到这样?
我就想问 别人拿到我这个插件 能不能看到这样的情况?
默认情况下release编译调试符号在.dSYM里面吧,换台电脑没这个包就没符号了
不能
先说结论:
正常情况下(你发布插件是release模式发布的),别人是无法看到你这里的符号(原代码和注释的)
因为:
如果是release模式,默认是会加很多优化==去掉debug调试模式时的很多内容,包括:
去除symbol符号
优化代码(大小,速度等)
”除非你故意设置release时也带调试符号“ 这个在哪儿设置的?
Xcode
->Target->Build Settings
→ Optimization level
→ release
:默认是-Os
== Fastest, Smallest
,我当时故意为了调试,而改为:None
→ 使得Release时也带上debug信息,方便我调试插件。