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

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

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

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

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

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

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

Спасибо за вашу помощь заранее. enter image description here

Ответ 1

Прежде всего, нет причин, по которым ваш базовый 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.

Ответ 2

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

  • Да.

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

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

Ответ 3

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

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

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

Ответ 4

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

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