从Framework确定OS X SDK和部署目标版本

Cra*_*tis 15 macos xcode otool

相当简单的问题 - 如果我有一个.framework文件,是否有一个命令/工具可用于确定用于创建框架的SDK和部署目标版本?

同样,这可以在存储在.app文件中的应用程序二进制文件上执行吗?我希望自动化一个脚本,该脚本将搜索以前构建的应用程序/框架列表,而不需要原始.xcodeproj文件,并确定它们的高/低支持的操作系统版本.

cod*_*ody 27

To find out the SDK and Deployment Target of some binary you should explore the LC_VERSION_MIN_MACOSX load command. Use otool -l <some_binary> to see load commands.
Example:

$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
...
Run Code Online (Sandbox Code Playgroud)

Example with piping to grep:

otool -l my_binary | grep -A 3 LC_VERSION_MIN_MACOSX
Run Code Online (Sandbox Code Playgroud)

  • 它适用于 iOS,前提是你告诉它 arch:`otool -arch armv7 -l libfoo.a`。 (3认同)

dim*_*4eg 6

在 Big Sur 11.4 上,我检查:

otool -l my_binary | grep minos
Run Code Online (Sandbox Code Playgroud)

输出例如:

minos 11.0
Run Code Online (Sandbox Code Playgroud)