2013-07-04 52 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