Установите Xcode 3.2.3 с iPhone SDK 4, получите «Отсутствует базовый SDK», другие SDK не видны - PullRequest
80 голосов
/ 02 июля 2010

Я создал эту вики сообщества, чтобы связать вместе несколько других вопросов / ответов, которые я видел здесь на SO.Если вы здесь, вы, вероятно, установили финальную версию Xcode 3.2.3 с iPhone SDK 4 ( ссылка для скачивания , reg reqd), а затем столкнулись с одной или обеими из этих проблем:

  • В вашем ранее работающем проекте Xcode iPhone вы где-то получили "Base SDK Missing".Примерно так:

    Ruh-roh!

  • В связанном, но более общем наблюдении, ни один из ранее доступных вариантов защиты Device или Simulator SDK (например, 3.0, 3.1), 3.1.3, ...) доступно там, где вы их видели.

Ответы [ 4 ]

165 голосов
/ 02 июля 2010

Обзор

Я собираюсь объяснить, почему это происходит, а затем как исправить конкретную проблему "Отсутствует базовый SDK". Вы можете перейти к нижней части только для исправления, хотя я рекомендую прочитать все это. Я также рекомендую превосходный Джона Мухова по этому вопросу.

Если вы особенно заинтересованы в обновлении Xcode 3.2.4, которое имеет сильно связанную проблему, вы можете указать здесь .

Один SDK, чтобы управлять ими всеми

Вот предложение: 4.0 теперь единственная версия SDK, разрешенная для отправки. новые или обновленные приложения только для iPhone. Это прямо из Apple iOS 4 Контрольный список готовности (reg reqd):

Все новые приложения и обновления существующих приложений должны будет построен с iPhone SDK 4. Обратите внимание, что App Store не будет больше поддерживаются приложения для iOS 2.x.

Предположительно - я думаю, здесь - только для iPad и универсальные приложения следует использовать 3.2 SDK. Именно поэтому - именно поэтому 4.0 и 3.2 - ваш единственный выбор для SDK.

По этой же причине ваш проект теперь не работает, так как SDK, к которому он был ранее привязан, является устаревшим , gones-ville.

(но) 3 - магическое число

Relax. Вы все еще можете ориентироваться на устройства под управлением iPhone OS 3.0 (но не ниже). SDK, который вы используете для компиляции не ограничивает - вниз - какая версия iOS Вы можете программировать или поддерживать. После того, как вы исправили вещи в своем проекте и т. Д. (См. Следующий раздел), вы можете установить для «iPhone OS Deployment Target» более низкую версию iOS. Чтобы быстро узнать, как это сделать, ср. шаг 7 в следующем разделе.

Обратите внимание, что вы сейчас входите в сложный ландшафт. Ваш обычный компилятор Xcode 3.2.3 больше не будет обеспечивать ваше соответствие вызовам только 3.0, и при этом у него нет симулятора для них. И если вы хотите поддерживать функции 4.0, вам придется сделать некоторый условный код, чтобы предотвратить сбои на устройствах 3.0. Веселье.

Вы все еще можете загрузить (из Apple!) И установить предыдущую версию Xcode или SDK (см. здесь ). Да, вы можете установить несколько версий XCode в разных каталогах, т.е. поместить только одну версию в / Developer. Вы можете использовать старый Xcode, чтобы проверить соответствие вашего приложения по сравнению с 3.x SDK, перенеся тяжелую работу на модный компилятор и симулятор. Но вы больше не можете использовать продукты предыдущих SDK для отправки в магазин приложений.

FWIW, я планирую сделать только эту проверку перед отправкой.

В каком состоянии мое состояние

Мэтт Галлахер имеет пост «Какао с любовью» по условному коду версии под названием «Советы и рекомендации для условного кода iOS3, iOS3.2 и iOS4» . Если вы планируете условно использовать функции 4.0, настоятельно рекомендуем проверить это.

Исправление "Отсутствует базовый SDK"

  1. Загрузите ваш проект
  2. В меню выберите «Проект»> «Изменить настройки проекта» ...
  3. В разделе «Архитектура»> «Базовый SDK» выберите одно из доступных устройств. варианты: iPhone 3.2 или iPhone 4.0. Если вы работаете только с iPhone, 4.0 - это путь.
  4. Закройте это окно.
  5. В меню выберите «Проект»> «Изменить активную цель» «Ваша цель»
  6. В разделе «Архитектура»> «Базовый SDK» выберите одно из доступных устройств. или опции симулятора: iPhone 3.2 или iPhone 4.0.
  7. Если вы хотите настроить таргетинг на предыдущие версии iOS, то в том же В разделе «Развертывание»> «Цель развертывания iPhone OS» выберите самая низкая версия, которую вы хотите поддерживать. Обратите внимание, что поддержка версий 2.x через магазин приложений не рекомендуется. См. Цитату «Проверка готовности» выше.

Местоположение базового SDK для Xcode 4 и выше

Выполните действия, описанные выше, но для шага № 2 нажмите следующее:

  • Выберите навигатор проекта с помощью значка папки слева от боковой панели навигатора
  • Выберите проект, который будет в верхней части этого представления.
  • Конфигурация проекта появится в главной панели редактора;выберите «Настройки сборки» вверху, а ниже появится раздел «Архитектура».

Project navigator Build Settings

(Этот ответ является слегка адаптированной версией Sherman Lo s answer )

Addendum

Более подробную информацию по этой теме также можно найти в первом ответе на этот вопрос.Здесь также есть некоторая полезная информация .

8 голосов
/ 15 ноября 2010

Если вы исправили свои настройки и по-прежнему видите «Отсутствует базовый SDK» и не можете собрать, перезагрузите проект. Я вышел из Xcode, но закрытие и повторное открытие, вероятно, также будет работать.

5 голосов
/ 28 сентября 2010

Ссылки, предоставленные Clay Bridges для загрузки более ранних версий Xcode и iPhone OS SDK, не работают. Однако редактирование этих ссылок для замены первого экземпляра «iphone» на «ios» действительно работает, по крайней мере для ссылки Snow Leopard (загрузка сейчас).

Правильные ссылки, а также информация об установке старых SDK для iOS в более новые установки XCode, взяты из этой записи в блоге Криса Флетчера: Как установить iphone SDK 2.0.3.1 для XCode 3,2 Настоятельно рекомендуется!

3 голосов
/ 13 июля 2010

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

опция / Alt щелкнув раскрывающийся список

выявлено несколько дополнительных опций, которые очень полезны.

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