Огляд
Я збираюся пояснити, чому це відбувається, а потім, як виправити конкретну проблему "Відсутній базовий 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 - це магічне число
Розслабтесь. Ви все ще можете націлити на пристрої, що працюють під управлінням iPhone OS 3.0 (але не нижче). SDK, який ви використовуєте для компіляції , не обмежує, аніж вниз, яку версію iOS ви можете запрограмувати чи підтримати. Після того, як ви виправили речі у своєму проекті тощо (див. Наступний розділ), ви можете встановити "Ціль розгортання ОС iPhone" на нижчу версію 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"
- Завантажте свій проект
- У меню виберіть Проект> Редагувати налаштування проекту ...
- У розділі Архітектура> Базовий SDK виберіть один із доступних параметрів пристрою: iPhone 3.2 або iPhone 4.0. Якщо ви лише для iPhone, 4.0 - це шлях.
- Закрийте це вікно.
- У меню виберіть Проект> Редагувати активну ціль "YourTarget"
- У розділі Архітектура> Базовий SDK виберіть один із доступних варіантів пристрою або симулятора: iPhone 3.2 або iPhone 4.0.
- Якщо ви хочете націлити попередні версії iOS, то в цьому ж вікні в розділі Розгортання> Ціль розгортання ОС iPhone виберіть найнижчу версію, яку ви хочете підтримувати. Зверніть увагу, що підтримка версій 2.x через магазин програм застаріла. Див. Цитату "Контрольний список готовності" вище.
Базове розташування SDK для Xcode 4 і вище
Виконайте наведені вище дії, але для кроку 2 натисніть наступне:
- Виберіть навігатор проекту, використовуючи піктограму папки ліворуч на бічній панелі навігатора
- Виберіть проект, який буде у верхній частині цього подання.
- Конфігурація проекту з'явиться на головній панелі редактора; виберіть "Параметри побудови" вгорі, а внизу буде розділ "Архітектура".
(Ця відповідь є злегка адаптованим варіантом Sherman Lo «S відповіді )
Додаток
Більш детальну інформацію з цієї теми також можна знайти в першій відповіді на це питання . Там також корисна інформація тут .