Как отправить версию приложения, работающую на iPhone OS 3 и iPhone SDK 4?

Я установил sdk 4 на свой Mac. Мне нужно представить версию, которая работает на OS 3 и OS 4? Что я могу сделать? Могу ли я снова установить sdk3 и отправить свое приложение.

Если я соберу SDK4, будет ли он работать на устройствах с OS 3? Я не использую никаких функций из OS 4.


person aryaxt    schedule 28.06.2010    source источник
comment
возможный дубликат Сборка для более низкого номера версии для распространения iPhone   -  person Noah Witherspoon    schedule 07.07.2010


Ответы (2)


Хотя вы можете установить базовый SDK в свойствах целевой сборки, последний Xcode поставляется только с версиями 3.2 и 4.0, а первый - только для iPad. Вместо этого вам нужно загрузить старую версию Xcode (3.2.2) для разработки для 3.x на iPhone. Вы можете установить разные наборы Xcode в разные папки, кроме / Developer. Уловка заключается в поиске более старой версии Xcode. Я сохраняю свою копию (и настоятельно рекомендую всегда иметь при себе одну или две версии), но на них нелегко связать с основного сайта разработчиков. Вы можете перейти на http://connect.apple.com и найти их в разделе «Загрузки» -> «Инструменты разработчика».

Это немного запутанно. На самом деле должен быть способ установить базовый SDK в последний выпуск Xcode. Когда выйдет Xcode 4, нам придется использовать старый интерфейс для разработки обратно совместимых приложений?

Подробности разработки более старых прошивок также описаны в предыдущая ветка.

person Joost Schuur    schedule 28.06.2010
comment
На самом деле это не так сложно: установите для вашего базового SDK значение 4.0, установите цель развертывания на 3.1.3, и пока ваше приложение не вызывает никаких API-интерфейсов 3.2 или 4.0, которые вы создаете и запускаете на 3.1.3 или 3.2 или 4.0. устройств. Подробности здесь - person progrmr; 29.06.2010
comment
спасибо, отличный ответ. Проблема заключалась в том, что я устанавливал базовый SDK на 3.0 вместо целевого развертывания. - person aryaxt; 29.06.2010
comment
вы должны отметить этот ответ зеленым цветом, если он решил вашу проблему. - person Clay Bridges; 06.07.2010

В настройках ПРОЕКТА установите для BASE SDK значение 4.0.

В настройках TARGET установите для вашего DEPLOY TARGET SDK значение 3.0 (или 2.x, или как вам нравится).

ПРИМЕЧАНИЕ. Если вы используете API, превышающие ваш самый низкий целевой показатель DEPLOY (т.е., вы используете API 4.0 и развертываете до 3.x), вам необходимо проверить доступность этот API. Один из способов сделать это:

// Code written in browser, not tested.
- (BOOL) classIsAvailablie: (NSString*) className
{
    Class *theClass = NSClassFromString(className);
    return (theClass != nil);
}

// ...

if ([self classIsAvailable: @"Some4.0OnlyClass"])
{
    // ...
}
person Olie    schedule 07.07.2010