实现此目的的一种简单且替代的方法是使用 cycript 和 system() 调用,但是在使用 system() 之前请注意使用它的危险,因为它可能不安全(在我看来,这对于越狱的 iOS,一切都非常不安全)
假设您有一个[[SomeClass sharedInstance] methodToBeCalledExternally]想要从其他进程调用的方法
您可以将该调用保存到文本文件中/tmp/something.cy
然后您通过运行以下命令从外部注入该代码:
cycript -p Music /tmp/something.cy
Run Code Online (Sandbox Code Playgroud)
但是如果您需要以编程方式执行此操作,当然如果环境没有沙盒(我认为不是),那么您可以执行以下操作:
system("cycript -p Music /tmp/something.cy")
Run Code Online (Sandbox Code Playgroud)
这样您就可以在任何进程(在本例中为音乐应用程序)中从您的代码执行任意 ObjC 代码。
最后,不要忘记删除该文件,/tmp/something.cy因为您将不再需要它
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |