Определение OS X SDK и развертывания Целевые версии из Framework

Довольно простой вопрос - если у меня есть файл .framework, есть ли команда/инструмент, который можно использовать для определения версий SDK и Deployment Target, используемых для создания фреймворка?

Аналогично, это можно выполнить в двоичном файле приложения, хранящемся в файле .app? Я ищу автоматизировать script, который будет искать список ранее созданных приложений/фреймворков, не имея исходных файлов .xcodeproj и определяя их поддерживаемые версии ОС с высоким/низким уровнем.

Ответ 1

Чтобы узнать 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