Установите XCode 3.2.3 w/iPhone SDK 4, получите “Основных пропавших без вести SDK”, не видят другие SDKs

Я создал эту общественную Wiki для связывания многих других Q/A's, на которых я видел здесь ТАК. Если Вы здесь, Вы, вероятно, установили окончательную версию XCode 3.2.3 с iPhone SDK 4 (ссылка на загрузку, reg reqd), и затем встретились один или обе из этих проблем:

  • В Вашем ранее рабочем XCode проект iPhone Вы получаете "Основу SDK, отсутствующий" где-нибудь. Что-то вроде этого:

    Ruh-roh!

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

80
задан 8 revs, 4 users 69% 11 January 2019 в 03:54
поделиться

2 ответа

Обзор

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

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

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

Вот в чем дело: 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.

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

Расслабьтесь. Вы по-прежнему можете настраивать таргетинг на устройства под управлением 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, это серьезная рекомендация, чтобы проверить это.

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

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

Базовое расположение SDK для Xcode 4 и более поздних версий

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

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

Project navigator Build Settings

(Этот ответ представляет собой слегка адаптированную версию Шермана Ло ответа )

Приложение

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

165
ответ дан 24 November 2019 в 09:52
поделиться

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

option/alt щелчок по выпадающему меню

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

3
ответ дан 24 November 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: