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 после повторного открытия проекта. Проблема решена!