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