IPhone Simulator 3.x не указан после обновления до XCode 3.2.3 Beta4 с ОС 4.0

Когда я последний раз установил Xcode 3.2.3 Beta 2 (поддержка OS 4.0), у него были все устройства iPhone и Simulator 3.x.

Теперь, обновленный до Xcode 3.2.3 Beta 4 (поддержка OS 4.0), он больше не отображает SDK 3.x для симулятора или устройства в XCode. Когда я запускаю приложение, написанное для 3.1.2, текущий SDK указан как "базовый SDK отсутствует"

Я знаю, что 3.2.3 изменяет BASE 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 безрезультатно.

Ответ 1

Кажется, они удалили их.

Если вы разрабатываете более старую ОС, вы не должны использовать 4.0 Beta SDK.

В соответствии с примечаниями к выпуску:

iPhone OS 4 beta 4 предназначен для разработки цели только. Это программное обеспечение должно устанавливается только на устройства, предназначенные исключительно для iPhone OS 4 beta разработка приложения. Не установите это программное обеспечение, если вы не имеют устройство, предназначенное исключительно для iPhone OS 4 бета-приложение развитие.

Я бы порекомендовал вам установить 3.x sdk параллельно с 4.0. Я поддерживаю две директории Developer на моей машине /Developer для поддержки приложений, написанных для версий 3.0 и 3.1, и /Developer 4.0Beta для переноса приложений на 4.0, и тестирования новых функций, которые будут доступны в ближайшее время.

Возможность установки в другую папку немного сложно заметить при установке sdk, но хитрость заключается в том, чтобы нажимать стрелки вверх/вниз по умолчанию на этапе "Тип установки". После нажатия на них вы сможете выбрать другой каталог.

alt text

Помните, что приложение не предоставит вам приложение, созданное с помощью бета-версии SDK, поэтому я бы использовал бета-версию 4.0 для создания приложений 4.0, имея в виду, что API-интерфейсы могут все еще меняться до того, как GM будет освобожден.

Ответ 2

Вы должны прочитать: http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/ Это очень хорошо объясняет разницу между базовым SDK и целью развертывания - короче говоря, Base SDK - это самая высокая версия SDK, которую вы ожидаете поддерживать, тогда как цель развертывания - это самая низкая версия, которую вы будете поддерживать. Вы должны убедиться, что оба они правильно выбраны, и что ваш код будет поддерживать функциональность из этих SDK должным образом.

Ответ 3

Да, я тоже немного ударился головой об этом. Оказывается, вам нужно изменить настройки проекта (щелкните правой кнопкой мыши проект > "Получить информацию" ) здесь:

Настройки проекта XCode http://img.skitch.com/20100609-fk9aq46eyibf4ceftr6famdbt9.png

Вероятно, он скажет "3.1 (отсутствует)", поскольку они удалили это из XCode 3.2.3. Измените его на 3.2 или 4.0, и вы должны снова и снова работать.

Ответ 4

Изменение цели развертывания iPhone OS устраняет эту проблему, так же, как упоминалось выше nicktmro.

Я запускаю новый os4.0 на своем iphone и новом 4.0sdk. Я должен был установить свой BAse SDK как 4.0, но затем в "Get Info > Build" затем прокрутите вниз до раздела "Развертывание". Последний вариант должен сказать о развертывании развертывания ОС iPhone.

Вы можете выбрать путь назад к os 1.0

Ответ 5

Это для тех из нас, кто видит только цель развертывания MacOSX, когда мы меняем версию Base SDK на уровне проекта. Я обнаружил, что если я установил базовый SDK для iPhone OS 4.0 на уровне проекта, я не получил опцию развертывания iPhone OS. Если я установил целевой уровень развертывания BaseSDK и iPhone на целевой уровень (который появился сразу после изменения SDK), я мог бы вернуться к проекту и увидеть настройку целевого развертывания iPhone OS.

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

С уважением.

Ответ 6

Несмотря на то, что 3.x отсутствует в списке, вы все равно можете указать его как цель под целевой установкой развертывания iPhone OS.

Ответ 7

Чтобы отобразить цель развертывания iPhone OS, щелкните правой кнопкой мыши по проекту и выберите "Получить информацию". Появится раскрывающееся меню "Показать", выберите "Все настройки", в нижней части раздела "Развертывание" находится цель развертывания iPhone.

Ответ 8

Если в разделе "Развертывание" полностью отсутствует "Сильная" цель развертывания iPhone OS, и вы смотрите на Все настройки для Все конфигурации, вам может понадобиться для грубой силы.

В моем случае я закрыл проект в Xcode, а затем открыл проект (рабочий) xcodeproj. Для тех, кто не знает, просто щелкните файл xcodeproj правой кнопкой мыши и выберите Показать содержимое пакета (xcodeproj на самом деле является каталогом). После сохранения project.pbxproj для обеспечения безопасности найдите buildSettings каждого XCBuildConfiguration и убедитесь, что эти две строки отображаются:

IPHONEOS_DEPLOYMENT_TARGET = 3.0;
SDKROOT = iphoneos4.0;

Это будет нацелено на базовый SDK как iOS 4.0 (Device, NOT Simulator), но установите цель развертывания как минимум на iOS 3.0. Он даже отображается правильно в Xcode после повторного открытия проекта. Проблема решена!