2011-02-04 4 views
2

私は、どのフレームワークアプリケーションが使用しているかを検出する方法を検討しています。どのフレームワークアプリケーションが使用しているかを検出する

例えば、XYZアプリケーションがカーボンフレームワークとココアフレームワークを使用すると、私のプログラムはこのXYZアプリケーションが炭素フレームワークとココアフレームワークを利用することを検出できるはずです。

ご協力いただければ幸いです。

おかげで、 ラーフル

答えて

7

最も簡単な方法は、アプリケーションバイナリで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に応じてそれを使用することができます。

+0

+1私のアプローチよりはるかに "クリーナー" –

2

あなたはlsofに出力を解析することができ、またはあなたがbrowse the sources of lsofを行くと、独自のアプリに関連するコードをコピーできます。

関連する問題