我正在寻找检测应用程序正在使用的框架的方法。例如,假设某些XYZ应用程序使用碳框架和可可框架,那么我的程序应该能够检测到这个XYZ应用程序使用碳框架和可可框架。检测应用程序正在使用的框架
任何帮助将不胜感激。
感谢, 拉胡尔
我正在寻找检测应用程序正在使用的框架的方法。例如,假设某些XYZ应用程序使用碳框架和可可框架,那么我的程序应该能够检测到这个XYZ应用程序使用碳框架和可可框架。检测应用程序正在使用的框架
任何帮助将不胜感激。
感谢, 拉胡尔
最简单的方法是在应用程序二进制文件上运行otool -L
。例如,
$ otool -L /Applications/Twitter.app/Contents/MacOS/Twitter | grep Frameworks
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.6.2)
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 37594.0.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 152.0.0)
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 533.16.0)
/System/Library/Frameworks/CoreLocation.framework/Versions/A/CoreLocation (compatibility version 1.0.0, current version 12.0.0)
@executable_path/../Frameworks/Growl.framework/Versions/A/Growl (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.29.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 751.29.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1038.32.0)
如果你因为某些原因而运行otool
,可以随时阅读its source code并根据its licence使用它。
你可以输出到解析lsof
,或者你可以去browse the sources of lsof
和相关的代码复制到自己的应用程序。
+1比我的方法更“清洁”:) – 2011-02-04 08:03:55