我试图在ptrace上调用一个像thisptrace一样的函数(PT_DENY_ATTACH,0);
但是当我尝试使用#include< sys / ptrace.h>导入它时,Xcode会给我一个错误’sys / ptrace.h’文件找不到.我错过了什么,我是否需要导入一个库,或者这在iOS上根本不可用?
但是当我尝试使用#include< sys / ptrace.h>导入它时,Xcode会给我一个错误’sys / ptrace.h’文件找不到.我错过了什么,我是否需要导入一个库,或者这在iOS上根本不可用?
解决方法
这里的问题是Xcode正在将其SDK基本路径添加到所有系统头路径(例如,/ Applications / Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/usr/include /).不幸的是,ptrace.h不存在,但可以在/usr/include / sys /中找到.因此,要解决此问题,您需要将include语句更改为:
#include </usr/include/sys/ptrace.h>
我不知道为什么ptrace.h不包含在SDK中,但是当你在手机上运行时,你正在寻找的功能确实有效.
更新:虽然这确实允许您使用ptrace功能,但上传到Apple将导致应用拒绝,原因如下:
Non-public API usage: The app references non-public symbols in <app name>: _ptrace