Objective c MobileSubstrate-检查对象所在的捆绑包

Objective c MobileSubstrate-检查对象所在的捆绑包,objective-c,ios,jailbreak,Objective C,Ios,Jailbreak,我正在制作一个MobileSubstrate插件,它应该: a) 特定类的钩子实例方法和 b) 根据包含对象的应用程序的bundle ID(具体来说是UIResponder子类)执行不同的操作 关于如何实现这一点有什么建议吗?您说过,调用[[NSBundle mainBundle]bundleIdentifier]总是返回com.apple.springboard,而且仅此而已。这意味着您的代码只在SpringBoard内部运行 MobileSubstrate的调整只注入了部分流程,而不是全部流

我正在制作一个MobileSubstrate插件,它应该: a) 特定类的钩子实例方法和 b) 根据包含对象的应用程序的bundle ID(具体来说是UIResponder子类)执行不同的操作


关于如何实现这一点有什么建议吗?

您说过,调用[[NSBundle mainBundle]bundleIdentifier]总是返回com.apple.springboard,而且仅此而已。这意味着您的代码只在SpringBoard内部运行

MobileSubstrate的调整只注入了部分流程,而不是全部流程。您可以通过它的过滤器(从.plist文件加载)来控制它


如果您希望将代码注入类的所有实例中,然后将过滤器修改为“com.apple.UIKit”而不是“com.apple.springboard”,所有应用程序现在都将插入到您的代码中。

如果它是一个插件并在某个应用程序的上下文中运行,您在调用[[NSBundle mainBundle]bundleIdentifier]时是否获得应用程序ID,若并没有,你们会得到什么标识符?这个方法总是返回com.apple.springboard…那个么你们的调整只会修改springboard。将过滤器修改为“com.apple.UIKIT”,而不是“com.apple.springboard”。谢谢!我会尝试一下,让你知道结果。它成功了!非常感谢你!为了让我接受,你能把它作为一个答案贴出来吗?打字:如果我没记错的话,包标识符是区分大小写的,因此,
com.apple.UIKit
.Matoe,谢谢。我检查了一些我现有的代码,是的,它是这样拼写的。我检查的原因是,关于哪个bundle id的apple使用和不使用,存在一些不一致,在这种情况下,我记错了。