Сборка / тестирование универсального приложения для iPhone/iPad
У меня есть проект, настроенный (я думаю) для производства универсальных двоичных файлов. Базовый SDK установлен на 3,2, а цель развертывания установлена на 3,1. Семейство целевых устройств - iPhone/iPad, архитектура - armv6 armv7.
У меня было несколько вопросов о том, как эта универсальная двоичная вещь действительно работает:
1) Когда я хочу отправить двоичный файл приложения для проверки, какую конфигурацию я должен установить в качестве цели сборки? Если я установлю его как "Устройство - 3.1", я получу предупреждение, которое говорит "warning: building with Targeted Device Family" that includes iPad('1,2') requires building with the 3.2 or later SDK"
, Тем не менее, если я соберу SDK 3.2, будет ли он работать на iPhone с ОС 3.1? Какова правильная конфигурация для устройства и архитектуры (arm6 / arm7)?
2) Как протестировать описанный выше сценарий (собранный с SDK 3.2, но установленный на устройстве под управлением ОС 3.1)? Если я собираюсь с SDK 3.2, когда я пытаюсь установить его на телефон с OS 3.1, я получаю сообщение об ошибке, что операционная система телефона не обновляется.
Спасибо!
2 ответа
Наше первое универсальное приложение только что было одобрено и выпущено сегодня в App Store, поэтому вот настройки, которые мы успешно использовали:
архитектуры
Архитектура: Оптимизированная (armv6 armv7)
Базовый SDK: устройство iPhone 3.2
Создавать только активную архитектуру: не отмечено
Допустимые архитектуры: (пусто)
развертывание
Семейство целевых устройств: iPhone/iPad
Цель развертывания iPhone OS: iPhone OS 3.0
(Вы можете установить это на любую операционную систему iPhone 3.x, но мы хотели настроить таргетинг на самые старые из возможных устройств. Это должно быть 3.0 или выше, 2.x недопустимо для универсального приложения.)
Убедитесь, что вы также проверили эти параметры для самой цели (Project->Edit Active Target "AppName"); Мои первоначальные проблемы при загрузке в iTunes Connect были связаны с тем, что цель развертывания iPhone OS для самой цели по-прежнему была установлена на 2.2.1.
Таким образом, ключевым моментом является то, что для параметра "Архитектуры" задано значение "Оптимизировано (arm6 arm7)" в дополнение к значению "Действительные архитектуры", для которого установлено значение "armv6 armv7".
Это позволяет ему скомпилировать с 3.2 SDK и запустить на iPhone под управлением 3.1
Настройки, которые у меня есть в моем вопросе, в дополнение к вышеуказанным изменениям, похоже, необходимы для настройки приложения для отправки в виде универсального двоичного файла. Я еще не сделал этого, но я довольно уверен.
Пожалуйста, поправьте меня, если я ошибаюсь.