Когда я в последний раз установил XCode 3.2.3 Беты 2 (ОС 4,0 поддержки), это имело весь iPhone Device и Средство моделирования 3.x.
Теперь, обновленный к XCode 3.2.3 Беты 4 (ОС 4,0 поддержки), это больше не перечисляет 3.x SDKs или для средства моделирования или для устройства в XCode. Когда я запускаю приложение, которое было записано для 3.1.2, текущий SDK перечислен как "основные пропавшие без вести SDK"
Я знаю, что 3.2.3 изменения ОСНОВНОЙ SDK к 4,0, но каким образом ни один из 3.x устройства не доступен также?
Когда я перехожу в:
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
Эти только два доступные файла:
iPhoneSimulator3.2.sdk
iPhoneSimulator4.0.sdk
Однако, когда я перехожу в:
/Developer/Platforms/iPhoneOS.platform/DeviceSupport
3.0
3.0.1
3.1
3.1.1
3.1.2
3.1.3
3.2
4.0 (8A274b)
Я попытался переустановить новый XCode DMG напрасно.
Похоже, что они их удалили.
Если вы разрабатываете для более старой ОС, вам не следует использовать SDK 4.0 Beta.
Согласно примечаниям к выпуску:
iPhone OS 4 beta 4 предназначена только для разработки. только для разработки. Это программное обеспечение должно устанавливаться только на устройствах, предназначенных исключительно для iPhone OS 4 beta разработки приложений. Не устанавливать это программное обеспечение, если у вас нет если у вас нет устройства, предназначенного исключительно для iPhone OS 4 beta разработки.
Я бы рекомендовал вам установить sdk 3.x параллельно с 4.0. Я держу на своей машине две директории Developer: /Developer для поддержки приложений, написанных для 3.0 и 3.1, и /Developer4.0Beta для переноса приложений на 4.0 и опробования новых функций, которые скоро появятся.
Опцию установки в другую папку немного трудно заметить при установке sdk, но фокус в том, чтобы нажать стрелки вверх/вниз возле директории по умолчанию на шаге "Тип установки". После нажатия на них вы сможете выбрать другой каталог.
Помните, что App;le не позволит вам отправить приложение, созданное с помощью бета-версии SDK, поэтому я бы использовал бета-версию 4.0 только для создания приложений 4.0, помня, что API могут измениться до выхода GM.
Да, я тоже некоторое время бился головой об это. Оказывается, нужно изменить настройки проекта (правой кнопкой по проекту > "Get Info") здесь:
Настройки проекта XCode http://img.skitch.com/20100609-fk9aq46eyibf4ceftr6famdbt9.png
Там, вероятно, будет написано "3.1 (отсутствует)", так как они удалили это из XCode 3.2.3. Измените его на 3.2 или 4.0, и вы снова сможете работать.
Вы должны прочитать: http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/ Это очень хорошо объясняет разницу между базовым SDK и Цель развертывания - короче говоря, базовый SDK - это самая высокая версия SDK, которую вы ожидаете поддерживать, а цель развертывания - это самая низкая версия, которую вы будете поддерживать. Вам необходимо убедиться, что оба они выбраны правильно, и что ваш код будет правильно поддерживать функции этих SDK.
Изменение целевого объекта развертывания iPhone OS устраняет эту проблему, как и nicktmro, упомянутый выше.
Я использую новую os4.0 на своем iphone и новую версию 4.0sdk. Мне пришлось установить свой BAse SDK как 4.0, но затем в «Get Info> Build» прокрутите вниз до раздела Deployment. В последнем варианте должна быть указана цель развертывания iPhone OS.
Вы можете вернуться к ОС 1.0
Даже несмотря на то, что 3.x нет в списке, вы все равно можете указать его в качестве цели в разделе «Цель развертывания iPhone OS».
Если Цель развертывания ОС iPhone полностью отсутствует в разделе «Развертывание», и вы просматриваете Все настройки для Все конфигурации , вам может потребоваться грубая сила.
В моем случае я закрыл проект в Xcode, затем открыл пакет проекта (рабочий) xcodeproj
. Для тех, кто не в курсе, просто щелкните правой кнопкой мыши «файл» xcodeproj
и выберите Показать содержимое пакета ( xcodeproj
на самом деле является каталогом). После резервного копирования project.pbxproj
в целях безопасности просмотрите buildSettings
каждого XCBuildConfiguration
и убедитесь, что появляются эти две строки:
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
SDKROOT = iphoneos4.0;
Это нацелено на базу SDK как iOS 4.0 (устройство, а не симулятор), но установите для цели развертывания как минимум iOS 3.0. Он даже правильно отображается в Xcode после повторного открытия проекта. Задача решена!
Чтобы отобразить цель развертывания iPhone OS, щелкните проект правой кнопкой мыши и выберите «Получить информацию». В раскрывающемся списке «Показать» выберите «Все настройки», в нижней части раздела «Развертывание» находится цель развертывания iPhone.
Это для тех из нас, кто видит цель развертывания MacOSX только тогда, когда мы меняем версию Base SDK на уровне проекта. Я обнаружил, что если я установлю только базовый SDK для iPhone OS 4.0 на уровне проекта, я не получу параметр «Цель развертывания iPhone OS». Если я установил BaseSDK и цель развертывания iPhone OS на целевом уровне (который появился сразу после изменения SDK), я мог бы вернуться к проекту и увидеть настройку цели развертывания iPhone OS.
Возможно, стоит попробовать, прежде чем идти по пути грубой силы.
С уважением.