iphone Dev. Как сделать свое приложение совместимым одновременно с iOS 3 и iPad (iOS 4.2)

Я искал способ сделать свое приложение совместимым с iPhone-iOS3 и в то же время сделать его совместимым с iPhone и iPad с iOS 4.2.

Я видел некоторые приложения в магазине приложений, которые утверждают, что они совместимы с iPhone iOS3 и выше, а также с iPad.

Есть идеи, как они это делают? Как они тестируют разные версии и как компилируют окончательную версию, которая загружается в магазин приложений.


person manospro    schedule 26.01.2011    source источник


Ответы (1)


Чтобы ваше приложение загружалось как на iPad, так и на iPhone, просто убедитесь, что у вас есть 2 разных xib для обслуживания каждого устройства, при запуске приложения проверьте устройство, будь то iPad или iPhone, и загрузите файл xib соответственно.

iOS3 и устройства, которые не поддерживают многозадачность, будут вызывать метод applicationDidTerminate при нажатии кнопки «Домой». iOS4 и новее, просто убедитесь, что метод applicationDidEnterBackground реализован для поддержки многозадачности. Вы также можете снять флажок в файле Info.plist, что ваше приложение не поддерживает многозадачность (не рекомендуется Apple), вместо этого iOS вызовет applicationDidTerminate, и приложение по-прежнему будет использоваться как в iOS3, так и в iOS4.

Ваше здоровье.

person Seyther    schedule 26.01.2011
comment
Это, конечно, означает, что мне придется скомпилировать под 3 SDK, верно? - person manospro; 26.01.2011
comment
Вы не обязаны. Просто убедитесь, что оба метода applicationDidTerminate и applicationDidEnterBackground реализованы и работают в последней сборке iOS (iOS4.2 или iOS4.3 beta), это подойдет для устройств iOS3 и iOS4. Ваше здоровье. - person Seyther; 26.01.2011
comment
Подождите мин. У меня есть последний выпущенный SDK 4.2 на моем Xcode. Как мне тестировать на OS3? Мне известно о applicationDidTerminate и applicationDidEnterBackground, но у меня сложилось впечатление, что приложение совместимо с SDK, под которым вы компилируете, и далее. Если это не так, ПОЖАЛУЙСТА, поясните, потому что мое приложение в настоящее время доступно для OS4.2 и более поздних версий :-( - person manospro; 26.01.2011
comment
Единственное основное различие между iOS3 и iOS4 - это просто проблема с фоном. Реализуйте оба метода, соберите iOS4.2 SDK, он будет работать нормально, даже если это приложение использует устройство iOS3, просто iOS3 вызывает appDidTerminate вместо appDidEnterBackground. Так что в любом случае это не имеет значения. - person Seyther; 26.01.2011
comment
Я понимаю основные различия между двумя iOS. Однако я считаю, что я реализовал оба метода (в основном потому, что телефоны 3G не поддерживают многозадачность, даже если на них установлена ​​iOS 4.2). Однако у меня есть проблема в том, что когда я отправляю свое приложение в App Store, оно становится совместимым с iOS 4.2 или новее. Я предположил, что это произошло потому, что я использовал SDK 4.2 для компиляции приложения. Например, когда будет выпущен SDK 4.3, если я скомпилирую свое приложение на этом SDK и отправлю свое приложение, App Store автоматически обнаружит это и установит совместимость моего приложения с iOS 4.3 или более поздней версии. Что я делаю неправильно? - person manospro; 26.01.2011
comment
если на устройстве не поддерживается многозадачность, будет вызван appDidTerminate. Вы не делаете ничего плохого, ваше приложение всегда должно быть совместимо с последней сборкой iOS, и это то, о чем вам нужно беспокоиться. Я думаю, что есть также цель развертывания, которую нужно установить на самую раннюю версию, с которой вы хотите работать, в проекте. Вы можете сослаться на эту статью и посмотреть, поможет ли она stackoverflow.com/questions/3027120/ - person Seyther; 26.01.2011
comment
Цель развертывания iOS ...! Спасибо, дружище, ты очень помог. Спасибо миллион - person manospro; 26.01.2011