Iphone 模拟自动挂钩

Iphone 模拟自动挂钩,iphone,objective-c,debugging,objective-c-runtime,Iphone,Objective C,Debugging,Objective C Runtime,我想知道是否有人知道iSimulate如何自动将自己注册/挂接到已调试的iDevice应用程序中?它只需包含静态库(和几个框架)就可以了,而且可以正常工作。没有可调用的方法或函数。这是怎么可能的?简短回答:使用Objective-C中的类别,您可以扩展或扩充系统中的任何类,包括核心类和NSObject本身。(类似于Ruby中的“猴子补丁”) 实际的通信很可能是一次广播,发送不希望得到回复的包。当你启动应用程序时,它只是开始拦截这些软件包。因此,是模拟器应用程序钩住了iSimulate流,而不是i

我想知道是否有人知道iSimulate如何自动将自己注册/挂接到已调试的iDevice应用程序中?它只需包含静态库(和几个框架)就可以了,而且可以正常工作。没有可调用的方法或函数。这是怎么可能的?

简短回答:使用Objective-C中的类别,您可以扩展或扩充系统中的任何类,包括核心类和NSObject本身。(类似于Ruby中的“猴子补丁”)

实际的通信很可能是一次广播,发送不希望得到回复的包。当你启动应用程序时,它只是开始拦截这些软件包。因此,是模拟器应用程序钩住了iSimulate流,而不是iSimulate以某种方式“进入”你的应用程序


看看开源项目。您可以轻松地将其扩展到广播触摸,并基本上复制iSimulate的功能。你会了解Objective-C的妙处。

我不知道那个项目,但知道它很方便。我非常喜欢Objective-C和Ruby,因为它们能够覆盖/扩展现有的实现。这不是我最初追求的解决方案,但它确实让我想到了我遇到的另一个问题:)我想我是通过Mach-O ABI文件格式参考,使用链接器的初始化函数(XCode中的INIT_例程)找到了解决方案。我将给大家介绍一下。好的,INIT_例程只用于动态库,我们都知道不能为iPhone应用程序创建动态库-Grrr<代码>\uuuu属性(构造函数))静态void MyInit(){doSomething();}可以工作,向类添加
+load
+initialize
方法也可以工作。