Я создал эту общественную Wiki для связывания многих других Q/A's, на которых я видел здесь ТАК. Если Вы здесь, Вы, вероятно, установили окончательную версию XCode 3.2.3 с iPhone SDK 4 (ссылка на загрузку, reg reqd), и затем встретились один или обе из этих проблем:
В Вашем ранее рабочем XCode проект iPhone Вы получаете "Основу SDK, отсутствующий" где-нибудь. Что-то вроде этого:
В связанном, но более общем наблюдении ни одной из ранее доступной защиты Устройства или Средства моделирования выбор SDK (например, 3.0, 3.1, 3.1.3...) доступен, где Вы раньше видели их.
Я собираюсь объяснить, почему это происходит, а затем как исправить конкретную проблему «Отсутствует базовый SDK». Вы можете перейти к нижней части, чтобы узнать об исправлении, хотя я рекомендую прочитать все это. Я также рекомендую превосходную дубль Джона Мучоу по этому вопросу.
Если вас особенно интересует обновление Xcode 3.2.4, которое имеет сильно связанную проблему, вы можете сообщить здесь .
Вот в чем дело: 4.0 теперь является единственной версией SDK, разрешенной для отправки новые или обновленные приложения только для iPhone. Это прямо из iOS 4 от Apple. Контрольный список готовности (reg reqd):
Все новые приложения и обновления существующих приложений должны быть построенным с помощью iPhone SDK 4. Обратите внимание, что в App Store не будет более длительная поддержка приложений, предназначенных для iOS 2.x.
Предположительно - я предполагаю - только для iPad и универсальные приложения. следует использовать 3.2 SDK. Это , поэтому 4.0 и 3.2 - ваш единственный выбор для SDK.
По этой же причине ваш проект теперь не работает, поскольку SDK, с которым он ранее был сопоставлен, устарел , gones-ville.
Расслабьтесь. Вы по-прежнему можете настраивать таргетинг на устройства под управлением iPhone OS 3.0 (но не ниже). SDK, который вы используете для компиляции , не ограничивает - и далее - какая версия iOS вы можете запрограммировать или поддержать. После того, как вы исправили что-то в своем проекте и т. Д. (См. Следующий раздел), вы можете установить «Цель развертывания iPhone OS» на более низкую версию iOS. Краткий обзор того, как это сделать, см. шаг 7 в следующем разделе.
Обратите внимание, что сейчас вы входите в сложную местность. Ваш обычный компилятор Xcode 3.2.3 больше не будет обеспечивать соблюдение требований только для 3.0, и у него нет для этого симулятора. А если вы хотите поддерживать функции 4.0, вам придется написать условный код для предотвращения сбоев на устройствах 3.0. Веселье.
Вы все еще можете загрузить (из Apple!) И установить предыдущую версию Xcode или SDK (см. здесь ). Да, вы можете установить несколько версий Xcode в разные каталоги, т.е. поместить только одну версию в / Developer. Вы можете использовать старый Xcode для проверки совместимости вашего приложения с SDK 3.x, переложив тяжелую работу на модный компилятор и симулятор. Но вы больше не можете использовать продукты предыдущих SDK для отправки в магазин приложений.
FWIW, я планирую провести эту проверку перед отправкой.
Мэтт Галлахер опубликовал сообщение «Какао с любовью» об условном коде версии, озаглавленное «Советы и рекомендации для условного кода iOS3, iOS3.2 и iOS4» . Если вы планируете условно использовать функции 4.0, это серьезная рекомендация, чтобы проверить это.
Выполните шаги, описанные выше, но для шага 2 щелкните следующее:
(Этот ответ представляет собой слегка адаптированную версию Шермана Ло ответа )
Более подробная информация по этой теме также можно найти в первом ответе на этот вопрос . Также есть полезная информация здесь .
У меня тоже была такая же проблема. У меня также была проблема, когда при использовании нескольких целей при переключении на предыдущую цель xcode забывал изменить несколько вещей, например, при переключении с цели iOS на цель MacOS.
option/alt щелчок по выпадающему меню
открыл несколько дополнительных опций, которые оказались очень полезными.