iPhone Simulator 3.x отсутствует в списке после обновления до XCode 3.2.3 Beta4 с OS 4.0

Когда я в последний раз устанавливал Xcode 3.2.3 Beta 2 (поддержка OS 4.0), в нем были все устройства iPhone и симулятор 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, но безрезультатно.


person Jon    schedule 28.05.2010    source источник
comment
Это все еще происходит с семенами GM XCode 3.2.3. Ой ой!   -  person Dan Fabulich    schedule 09.06.2010
comment
Для тех, кто может не знать, это также включено в финальную версию. У меня есть вики сообщества по этому поводу: stackoverflow.com/questions/3161385.   -  person Clay Bridges    schedule 02.07.2010


Ответы (8)


Вроде их убрали.

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

Согласно примечаниям к выпуску:

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

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

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

alt text

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

person Brad The App Guy    schedule 28.05.2010
comment
Спасибо, Брэд. Как запустить их параллельно? Когда я снова устанавливаю 3.2, он удаляет функции 4.0. И когда я устанавливаю 4.0, у меня нет возможности настроить каталог. Мне сначала просто установить 4.0, а затем переименовать папку Developer? Спасибо1 - person Jon; 29.05.2010
comment
@Jon, я отредактировал ответ, чтобы показать, где изменить каталог по умолчанию. Это немного неочевидно, и я не знал, что он существует, первые несколько раз я устанавливал различные версии SDK. - person Brad The App Guy; 29.05.2010
comment
@Jon, также должно работать переименование папки. Это то, что я сделал, прежде чем нашел эти маленькие стрелы - person Brad The App Guy; 29.05.2010
comment
Вау, спасибо, Брэд! Я опытный пользователь и даже не заметил этого! (опять же, я предполагаю, что большинство разработчиков являются опытными пользователями, ха-ха) Просто чтобы подтвердить: нет возможности запустить новый XCode 3.2.3 Beta4 со старыми SDK для ОС 3.1.x? Вы должны выбрать то или другое? - person Jon; 29.05.2010
comment
@jon Я попытался вручную загрузить (перетащить) файлы SDK из 3.1 / 3.2 SDK в папки 4.0 xcode dev, не сработало, я предполагаю, что с помощью некоторого взлома plist вы могли бы заставить его работать. - person Jonathan; 02.06.2010
comment
Финальный выпуск уже вышел, но все еще отсутствует iPhone SDK 3.1 и более ранние версии - я предлагаю вам не обновляться, если вы все еще используете более старую версию устройства для разработки (отладка / тестирование). - person adib; 23.06.2010

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

person pixel    schedule 10.06.2010

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

http://img.skitch.com/20100609-fk9aq46eyibf4ceftr6famdbt9.png

Вероятно, он скажет «3.1 (отсутствует)», поскольку они удалили это из XCode 3.2.3. Измените его на 3,2 или 4,0, и вы должны снова работать.

person Matt Good    schedule 09.06.2010
comment
Что делать, если цель развертывания ОС iPhone отсутствует в разделе «Развертывание»? (Я просматриваю Все настройки для всех конфигураций, чтобы быть уверенным.) В одном из моих проектов он есть, а в другом - нет, но оба изначально были созданы с помощью Xcode 3.1.x. Как странно. (Сейчас я использую Xcode 3.2.3, использую 4.0 в качестве Base SDK, но один из проектов, похоже, потерял привязку к iphoneos3.0 в качестве цели развертывания.) - person Joe D'Andrea; 21.06.2010
comment
По моему опыту, это не входит в настройки проекта. Вместо этого вы должны выбрать цель, и тогда вы увидите ее. - person Clay Bridges; 05.07.2010

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

Я использую новую os4.0 на своем iphone и новую версию 4.0sdk. Мне пришлось установить свой BAse SDK как 4.0, но затем в «Get Info> Build» прокрутите вниз до раздела Deployment. В последнем варианте должна быть указана цель развертывания iPhone OS.

Вы можете полностью вернуться к ОС 1.0

person whatiwant    schedule 14.06.2010

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

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

С Уважением.

person mikeq    schedule 01.07.2010

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

person nicktmro    schedule 12.06.2010

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

person kevin rahilly    schedule 25.06.2010

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

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

IPHONEOS_DEPLOYMENT_TARGET = 3.0;
SDKROOT = iphoneos4.0;

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

person Joe D'Andrea    schedule 28.06.2010