Вот как я сделал универсальное приложение из существующего проекта iPhone, создав ~ipad.xib(s) с использованием дубликатов, а затем добавив их обратно в резервную копию проекта и проверив универсальность.
Я использовал xcode 4.02 с базовым SDK 4.3.3 с целью развертывания 3.1.2.
- Сделайте резервную копию всего вашего проекта где-нибудь.
- Щелкните правой кнопкой мыши цель iPhone и выберите дубликат. Выберите дубликат для iPad, а не просто дубликат. Это создает новую папку с именем Resources-iPad с подпапкой под названием classs под ней, а под ней находятся копии всех xib-файлов всего проекта. (Самое смешное, что когда я смотрю на эти файлы в Finder, у них нет расширения .xib, хотя они показывают расширение в окне xcode — почему? Finder все равно говорит, что это xib-файлы.)
- В этот момент у меня было две цели. Это казалось неправильным, поэтому я пошел в поисковик и сделал резервную копию новой папки Resources-iPad, а затем удалил весь проект.
- Скопируйте исходный проект iPhone, резервную копию которого я создал на шаге 1.
- Добавлена резервная копия папки «Ресурсы-iPad» и отредактированы так, чтобы они хорошо выглядели для iPad.
- Теперь у меня была одна цель, которая казалась хорошей, и я сделал ее универсальным устройством вместо iPhone в сводке целей.
- Однако при развертывании на симуляторе или устройстве у меня возникло непоследовательное поведение — иногда без видимой причины использовался неправильный xib.
- Это исправило - в xcode в папке Resources-iPad/classes переименуйте все xibs для ipad из mynibname.xib в mynibname~ipad.xib (тильда впереди и все строчные буквы)
Я не смог найти никакой документации о том, можно ли делать это таким образом. Пока он работает на этих физических устройствах:
iPad 2 с 4.3, iPod touch v1 с 3.1.2, iPod touch v4 (retina) с 4.1
Это правильный способ создания универсального приложения? Теперь, когда я разобрался с этим, это кажется достаточно простым, но мне потребовалась целая вечность, чтобы найти эту информацию. О, также у меня нет mainwindow.xib, но есть другие перья, которые загружаются в другом месте в виде заголовков разделов таблицы и подробных представлений в приложении на панели вкладок, поэтому я оставил основные разделы интерфейса пустыми.
О, у меня нет iPad 1, и я не могу проверить это устройство, но, похоже, оно не работает правильно в симуляторе iPad 3.2, но все другие устройства и симуляторы работают нормально.