Существует ли глобальный способ объединить приложение для iPhone и iPad в универсальное приложение? - PullRequest
4 голосов
/ 12 марта 2011

Я написал приложение для iPhone. Затем я немного изменил интерфейс, добавил изображения с высоким разрешением и сделал его версию для iPad. В идеальном мире я хотел бы, чтобы любой, кто покупает версию для iPad, получал версию для iPhone бесплатно (но не наоборот). Поскольку у Apple, похоже, нет способа сделать это (правильно ??), мое следующее любимое решение - сделать так, чтобы версия для iPad как-то включала версию для iPhone.

Я знаю, что могу просто конвертировать версию для iPad в «универсальную», но, поскольку лицо приложения настолько отличается, это кажется настоящей болью. У меня есть много контроллеров представления, и они почти полностью отличаются между двумя версиями. Некоторые из методов одинаковы, но только около 30%. Есть ли простое решение в соответствии с этим:

  • Проверьте, является ли устройство iPhone или iPad

    • Если iPhone, то используйте одну группу файлов

    • Если iPad, то использовать другую группу файлов

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

Попробуйте создать новый проект в XCode и выберите сделать его универсальным приложением.По умолчанию в Xcode есть четкое разделение между версиями для iPad и iPhone.Вы можете сделать две версии приложения такими же или разными, как хотите.

Кроме того, вы можете проверить, какое устройство вы используете во время выполнения, используя UI_USER_INTERFACE_IDIOM().В настоящее время двумя значениями для этого являются UIUserInterfaceIdiomPad и UIUserInterfaceIdiomPhone.

0 голосов
/ 12 марта 2011

«Простое решение», которое вы описываете, заключается в том, как iOS загружает универсальные приложения.

Другого реального пути для этого нет.Вам придется снова объединить два проекта в один, чтобы сделать то, что вы хотите.

Первая проблема заключается в том, что некоторые (многие?) Имена классов будут общими для обоих проектов.Вы можете избавить себя от некоторой боли, используя функциональность «Refactor ...» в XCode, чтобы изменить имена классов в одном проекте (скажем, ваше приложение iPhone, так как оно старше), прежде чем объединить их вместе.Второй проблемой будет ваш Info.plist;вам нужно убедиться, что правильное «Основное имя файла пера», правильная поддерживаемая ориентация интерфейса, файлы значков и т. д. установлены на правильные значения для iPad и iPhone соответственно.

...