Как мне создать в Xcode проект iPhone, определяющий во время создания проекта версию SDK, которую я хочу использовать? - PullRequest
5 голосов
/ 25 марта 2009

С последней бета-версией Xcode и SDK 3.0 при создании нового проекта iPhone Xcode создает проект SDK 3.0. Если я хочу вернуться к SDK 2.2.1 после создания проекта, мне нужно что-то изменить в сгенерированных файлах исходного кода, так как некоторые API изменились. Есть ли простой способ указать во время создания проекта SDK, который я хочу использовать явно?

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 27 марта 2009

Я не могу комментировать конкретно iPhone SDK 3.0, так как он подпадает под действие NDA; есть форум для разработчиков на devforums.apple.com. Но Роджер Нолан наполовину прав, наполовину неправ. Он наполовину прав в том, что при обновлении любого SDK примеры и шаблоны в этом SDK обновляются, чтобы использовать его. То есть шаблоны могут специально использовать новые API в этом SDK, а код может просто не работать с более ранними SDK.

При этом вы можете сохранить шаблоны проектов из более ранних SDK и установить их в локальный каталог (например, ~ / Library / Application Support / Developer / Shared / Xcode / Project Templates) для использования с более поздними версиями Xcode. Сам формат шаблона проекта не изменился; шаблоны должны быть прямой и обратной совместимостью, но содержимое шаблонов обычно привязано к версии SDK, с которой он поставляется и позже.

г. Нолан наполовину ошибается в сборке с более ранними версиями ОС с более поздними SDK. Вот почему более ранние пакеты SDK поставляются с более поздними дистрибутивами (их нет просто для того, чтобы загрузка длилась дольше). Вы можете выполнить развертывание на более старых версиях ОС с более новым SDK, установив параметр сборки Deployment Target.

Есть небольшая деталь в том, что вам, вероятно, не следует развертывать производственные приложения, созданные с помощью предсерийного набора инструментов. Но как только версия N будет официально выпущена, вы сможете использовать ее набор инструментов для сборки для N-1, N-2 и т. Д.

2 голосов
/ 26 марта 2009

При условии, что вы не используете какие-либо новые функции в API 3.0, вы сможете выбрать Active SDK из выпадающего меню в верхнем левом углу окна вашего проекта XCode. Просто выберите «Устройство - 2.2.1» или «Симулятор - 2.2.1»

1 голос
/ 12 мая 2009

При использовании бета-набора инструментов вы должны установить его вместе с последней выпущенной цепочкой инструментов, а не вместо нее. Создайте свои проекты в производственном инструментарии, а затем откройте их с помощью бета-инструментария, чтобы выполнить тестирование на совместимость.

Вам все равно понадобится выпущенный набор инструментов для построения дистрибутива. Вы не должны собираться для распространения с бета-инструментарием.

1 голос
/ 26 марта 2009

Xcode по умолчанию использует новейший установленный SDK, и я не знаю ни одного способа изменить это поведение.

Я сделал привычкой устанавливать базовый SDK на 2.0 в свойствах проекта сразу после создания проекта.

0 голосов
/ 26 марта 2009

Там нет по словам Apple. Комментарии к моей публикации от Can Berk Güder говорят иначе. Я бы не советовал следовать его примеру - это лотерея, в которой Apple надеется, что вы не видите, что вы делаете или что вы не ошибаетесь из-за дефекта 3.0.

Вы можете использовать XCode для сборки для более ранних версий ОС, но если вам нужно собрать с несколькими SDK, вы должны установить их. Xcode поддерживает несколько установок на одном компьютере, и инструкции по установке описывают, как это сделать.

Если вы хотите использовать 3.0 SDK, который вы не можете собрать для OS 2.2.1, и отправить это приложение в магазин приложений - в соответствии с рекомендациями Apple. Говорят, что вы также должны установить 2.2.1 SDK и собрать с ним. Вы можете создавать 2.2 совместимые приложения, но вы используете бета-инструменты, которые могут содержать ошибки.

Это одна из тех вещей, которую вы можете выполнять как интеллектуальное упражнение, но она не стоит риска для реального приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...