Как всегда, когда Apple обновляет OS X, последний XCode 4.4 сбрасывает старый (10.6 )SDK, и мне приходится использовать SDK 10.7 (или 10.8, я полагаю ), и устанавливаю цель развертывания на 10.6. для сохранения совместимости.
Я предпочитаю связываться со старым SDK, потому что знаю, что не могу по ошибке ввести вызовы API, которые еще не существуют. То, что я регулярно делал, когда в последний раз пробовал обратный подход.
Что я делаю, так это то, что я использую функцию завершения кода в XCode, чтобы выбрать «правильный» вызов для простого класса, такого как NSWorkspace, тогда все работает нормально во время разработки, я забываю об этом, и когда я выпускаю новую версию :Кабум! Все приложение взрывается в более ранних версиях OS X во время выполнения -; часто в труднодоступных -до -местах:-)
По крайней мере, так было со мной несколько лет назад.
Конечно,теперь есть способ:
убедитесь, что вы не вводите вызовы API, которые еще не доступны в вашей цели развертывания, даже если они определены в SDK
обнаружение таких вызовов во время сборки или статического анализа
Я уверен, что я что-то пропустил, где-то по ходу дела. Пожалуйста, просветите меня!
С уважением,
Фрэнк