я могу выпустить приложение, которое предназначено для iPhone для iPad? - PullRequest
0 голосов
/ 06 сентября 2011

Я работаю над приложением для iPhone и решила сделать его универсальным.Если я установлю свои настройки сборки на iphone / ipad, многие размеры и выравнивания будут ошибаться (как я и ожидал), и в целом это выглядит не очень хорошо.

Если я нацеливаюсь только на iPhone, но запускаю его на iPad и нажимаю кнопку 2x, он выглядит великолепно.Я бы хотел выпустить свое приложение в магазине приложений для iPad, несмотря на то, что оставил целевую платформу как iPhone, поскольку она выглядит и работает намного лучше.

Интересно, будет ли это проблемой, когда яОтправить?Можно ли выпускать приложения для iPad только в магазине, если они предназначены для iPad?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 06 сентября 2011

Если вы разрабатываете для iPhone, вы захотите использовать файлы интерфейса «xib», которые имеют все правильные размеры для iPhone / iPod.iPad будет разрешено использовать приложение

. В вашем списке вы можете указать для запуска приложения файл xib [NSMainNibFile].

Или вы можете включить [NSMainNibFile ~ ipad] и скомпилируйте его для Universal.Это сообщит ios, что он должен открыть NSMainNibFile для iPhone / iPod и должен открыть NSMainNibFile ~ ipad для iPad.

Существует ряд других настроек, которые необходимо установить для значка ipad, по умолчаниюэкран среди других предметов.Но настройки файла Nib являются наиболее необходимыми.

, тогда у вас есть отдельные файлы XIB для каждой платформы.В соответствии с настройкой Model-View-Controller было бы относительно просто присоединить ваш новый вид (xib) к существующему контроллеру (.h / .m), подключить новый код к вашему коду и создать совершенно новое приложение.

Некоторые разделы кода необходимо будет изменить в зависимости от погоды на iPad или iPod.(например, макет, специальные функции iPad / iPod и т. д.)

Вот код, который я использую, чтобы определить, нахожусь ли я на iPad.

#define IS_IPAD() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \
[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad : NO)

Некоторые разработчики не полностью соблюдаютПарадигма MVC, поэтому ваш проект может потребовать некоторого переоборудования для работы на обеих платформах.Но если вы сможете точно определить места, которые отличаются от одной платформы к другой, ваше приложение сможет беспрепятственно работать на обеих платформах.(Скорее всего, с лучшим макетом на iPad, так как при раскладке элементов управления будет больше возможностей для игры)

В качестве альтернативы, если вы хотите, чтобы приложение было в стиле iPhone, но работало на iPad, оно уже делает этопо умолчанию.

1 голос
/ 06 сентября 2011

Ваше приложение будет доступно для просмотра только в разделе iPad магазина, если оно предназначено специально для iPad (это только iPad или универсальное приложение).

То, о чем вы говорите, это приложение для iPhone, работающее наiPad: где вы выбираете только целевые устройства iPhone.Эти приложения не будут отображаться в разделе iPad для магазина.

Думайте об этом как о стимуле Apple, чтобы вы разработали приложение, которое хорошо работает на iPad и iOS.

Помните, что пользователи iPad по-прежнему могут загружать приложения только для iPhone через магазин, они просто находятся в отдельном разделе.

1 голос
/ 06 сентября 2011

Если вы настроите таргетинг на iPhone (чтобы он отображался в iPad в режиме 1x / 2x), он появится только в магазине iPhone App Store.

iPad Пользователи по-прежнему смогут загружать приложение, но оно будет в разделе iPhone Apps.

iPad App Store. See the iPhone App Section on the bottom

Таким образом, если вы явно не нацелены на iPad, он не появится в магазине iPad.Вы можете переделать графику и выравнивание для приложения iPad и продать его как приложение HD.

Если вам нужен универсальный подход к выполнению чего-то подобного:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    controller = [[MyController alloc] initWithNibName:@"MyiPadNib" bundle:nil];
else
    controller = [[MyController alloc] initWithNibName:@"MyiPodNib" bundle:nil];
...