需求:获取 [NWConcrete_nw_connection initWithEndpoint:parameters:identifier:] 的IMP。NWConcrete_nw_connection 是 runtime libnetwork.dylib 中的类。
在 iOS 13 及之前版本,是可以轻松获取该方法的。今天测试了下iOS 14 Beta,无法获取了。
Class class = NSClassFromString(@"NWConcrete_nw_connection");
SEL selector = NSSelectorFromString(@"initWithEndpoint:parameters:identifier:");
Method method = class_getInstanceMethod(class, selector);
before iOS 14,获取 mehod 正常,iOS 14,method 为 NULL。看了下runtime 中 NWConcrete_nw_connection.h 头文件,这个方法确实消失了。
但是即使在iOS 14,使用符号断点,依然可以能看到该方法的调用。
尝试了下从该类的的元类中找,也没有。猜测 Apple 可能在新系统使用了动态方法解析来实现这个部分。那么问题来了:我该如何获取该方法 IMP?