2013-07-04 49 views
11

相當直接的問題 - 如果我有一個.framework文件,是否有一個命令/工具可用於確定用於創建框架的SDK和Deployment Target版本?從框架確定OS X SDK和部署目標版本

同樣,這可以在存儲在.app文件中的應用程序二進制文件上執行嗎?我正在尋找一種腳本來自動執行腳本,該腳本將搜索先前構建的應用程序/框架列表,而不需要原始文件.xcodeproj,並確定其支持的操作系統版本的高/低。

回答

17

要找出某些二進制文件的SDK和部署目標,您應該瀏覽LC_VERSION_MIN_MACOSX加載命令。使用otool -l <some_binary>來查看加載命令。
例子:

與管道
$otool -l my_binary 
... 
Load command 9 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.7 
     sdk 10.8 
... 

$otool -l /System/Library/Frameworks/CoreWLAN.framework/CoreWLAN 
... 
Load command 8 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.8 
     sdk 10.8 
... 

實例來grep

otool -l my_binary | grep -A 3 LC_VERSION_MIN_MACOSX 
+0

*完美*我曾與'otool',但標誌是嚇人衆多玩耍了。我的框架確實是用'version'和'sdk'設置爲10.8,我現在可以確認將(編譯器默認值)更改爲10.7會生成更好的副本。 –

+0

對iOS做同樣的提示?試圖確定項目中使用的當前Facebook和Crashlytics框架的部署目標,但該命令沒有顯示任何類似min版本的內容。 – Clafou

+0

@Clafou對不起,幫不了你那裏 – cody