我有一个用objective-c编写的静态库。我以libFoo.a文件的形式提供它。
我想提取库中包含的类和方法,类似于class-dump-z的输出。
我已按照建议here尝试使用otool -tV
。
但是,输出非常冗长,除了接口声明之外还包含很多其他内容。
根据H2CO3的评论,我尝试了RuntimeBrowser,这似乎是一个很好的工具。但是,从文件中打开.a文件 - >打开似乎没有做任何事情。可能是因为我正在使用Mac版本并试图检查iOS库。
我也尝试对静态库运行class-dump-z但它似乎不起作用:
/**
* This header is generated by class-dump-z 0.2a.
* class-dump-z is Copyright (C) 2009 by KennyTM~, licensed under GPLv3.
*
* Source: (null)
*/
尝试了常规的类转储,但收到了以下错误消息:
错误:Fat文件不包含指定的有效Mach-O文件 架构(i386)。这可能意味着类转储是在a上运行的 静态库,不受支持。
我下载了IDA for Mac(6.4.1303322)的评估版,到目前为止它还是最好的。非常有用 - 只需弹出静态库,您就可以看到类的列表,它可以理解Objective-C 2.0语法,您可以看到这些方法。
话虽这么说,我仍然希望看到一种方法来获得与class-dump-z相同格式的输出。
任何人都知道提取Objective-c静态库中包含的类和方法的方法吗?当我在调试器中停止并且使用[NSThread callStackSymbols]
时,我可以在堆栈中看到它们,因此我知道调试符号存在。