Mac SDK :с использованием последней версии SDK, но с обеспечением обратной совместимости с более ранней целью развертывания

Как всегда, когда Apple обновляет OS X, последний XCode 4.4 сбрасывает старый (10.6 )SDK, и мне приходится использовать SDK 10.7 (или 10.8, я полагаю ), и устанавливаю цель развертывания на 10.6. для сохранения совместимости.

Я предпочитаю связываться со старым SDK, потому что знаю, что не могу по ошибке ввести вызовы API, которые еще не существуют. То, что я регулярно делал, когда в последний раз пробовал обратный подход.

Что я делаю, так это то, что я использую функцию завершения кода в XCode, чтобы выбрать «правильный» вызов для простого класса, такого как NSWorkspace, тогда все работает нормально во время разработки, я забываю об этом, и когда я выпускаю новую версию :Кабум! Все приложение взрывается в более ранних версиях OS X во время выполнения -; часто в труднодоступных -до -местах:-)

По крайней мере, так было со мной несколько лет назад.

Конечно,теперь есть способ:

  • убедитесь, что вы не вводите вызовы API, которые еще не доступны в вашей цели развертывания, даже если они определены в SDK

  • обнаружение таких вызовов во время сборки или статического анализа

Я уверен, что я что-то пропустил, где-то по ходу дела. Пожалуйста, просветите меня!

С уважением,

Фрэнк

14
задан Frank R. 27 July 2012 в 08:39
поделиться