Один проект XCode, две цели, два приложения (iPhone / iPad), а не универсальное приложение

У нас есть проект XCode, который сначала создавался как универсальное приложение, а затем по дороге мы передумали, чтобы два приложения были в одном двоичном файле, поэтому мы создали две цели.

  1. Первый называется: AppName и предназначен для iPhone: базовый SDK - 4.2, а цель развертывания - 3.1.3. Целевое устройство - iPhone.
  2. Второй называется: AppNameHD и предназначен для iPad: базовый SDK - 3.2, а целевое устройство - iPad.

Прошло несколько недель, и мы легко создаем для каждой из этих платформ и можем развернуть их как на iPad, так и на iPhone.

Теперь мы готовы к отправке в магазин приложений, и я беспокоюсь о возможном отклонении кода. На данный момент мы хотим представить приложение только для iPad, но я осмотрелся, на сайте itunesconnect нет места, где я могу указать целевое устройство, и, поскольку проект был сначала структурирован как универсальное приложение. Мне интересно, как они определяют, на каком устройстве тестировать двоичный файл.

Дополнительная информация об архитектуре: мы используем сгенерированный по умолчанию файл info.plist для обеих целей. Должны ли мы иметь отдельный info.plist для каждой цели? какие различия должны присутствовать между двумя файлами .plist.

Здесь прилагается фактический файл info.plist, который мы используем.

Заранее благодарим за вашу помощь. введите описание изображения здесь


person clide313    schedule 09.02.2011    source источник


Ответы (4)


Прежде всего, нет причин, по которым ваш базовый SDK для цели только для ipad должен быть 3.2. Фактически, поскольку iOS 4.2 работает на ipad, вы собираетесь ограничить свою клиентскую базу, не меняя базовый SDK на 4.2. Вы можете установить в качестве целевой ОС iOS 3.2, чтобы приложение работало на iOS 3.2.

В настройках сборки целевой конфигурации найдите «целевое семейство устройств», в котором будет указано, является ли целью «ipad», «iphone» или (для универсальных приложений) «iphone / ipad».

Я также перенес универсальное приложение на две разные цели - это было неинтересно. Вы должны очень внимательно проверить настройки сборки и файлы .plist, чтобы убедиться, что они подходят для предполагаемого целевого устройства, особенно проверьте: базовый SDK, цель развертывания iOS, целевое семейство устройств и файл Info.plist.

person Bogatyr    schedule 09.02.2011
comment
Спасибо. Это сработало как шарм, и моя версия для iPad теперь в магазине. Телефон приедет. - person clide313; 17.02.2011

Должны ли мы иметь отдельный info.plist для каждой цели?

  • да.

Какие должны быть различия между двумя файлами .plist?

  • Идентификатор пакета (например, com.example.app для iPhone / iPod и com.example.app-hd для iPad)
  • (необязательно) значок (отличается для iPhone, iPhone @ 2x и iPad)
  • (необязательно) Изображение запуска (другое для iPhone, iPhone @ 2x и iPad)
  • (необязательно) Поддерживаемые ориентации интерфейса (по моему опыту, как минимум 2 ориентации для iPad)
person ohho    schedule 10.02.2011

Apple использует ваш Info.plist для определения целей в itunesconnect.

Глядя на ваш снимок экрана, я думаю, вам просто нужно убедиться, что вы не указали NSMainNibFile ~ ipad an UISupportedInterfaceOrientations ~ ipad в целевом iPhone и, наоборот, для целевого iPad (то есть не включают записи, специфичные для iPhone). Кстати, открытие Info.plist в Xcode предоставляет гораздо более описательные имена для ключей, а также предоставляет раскрывающийся список для допустимых значений.

Также будьте осторожны с UIRequiredDeviceCapabilities, то есть, как правило, включайте ключ в свой список только в том случае, если он абсолютно необходим.

person loafoe    schedule 09.02.2011

Чтобы использовать приложение IPhone на iPad, изображение запуска не получается, решение:

Выберите «Не использовать каталог ресурсов» для изображений запуска в общих настройках. Добавлять,

person kiran    schedule 27.03.2014