Создать «Универсальный бинарный» из двух приложений? - PullRequest
5 голосов
/ 19 августа 2009

Короткий вопрос: Как вы берете два приложения, одно для Intel, а другое для PPC, и упаковываете их в один Universal Binary?

Мои текущие мысли по этой проблеме:

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

По причинам, по которым я не буду вдаваться в подробности, у меня есть два приложения моей программы (одноразовое использование xtools для универсальной компиляции двоичного файла): одно для Intel Mac и другое для Mac> = 10.3.9, работающее на PPC , Совместное использование ресурсов не является проблемой.

Я мог бы поместить и MyProg_intel.app, и MyProg_ppc.app в один zip-файл и распределить его таким образом; но это может привести к путанице для многих людей, которым я буду распространять свою программу.

Ответы [ 4 ]

5 голосов
/ 19 августа 2009

См. Инструмент lipo . Это позволит вам соединить ваши файлы PPC и i386.

Кроме того, иногда можно избежать отдельных целей для разных архитектур, используя настройки условной сборки в Xcode. Это полезно, если вам нужно связать разные бинарные библиотеки для каждой архитектуры, например.

3 голосов
/ 19 августа 2009

Проверьте справочную страницу для lipo. Я считаю, что вы можете использовать -create, чтобы взять несколько входных файлов и создать один выходной файл с несколькими архитектурами.

1 голос
/ 19 августа 2009

На сайте Apple для разработчиков есть статья Создание универсального двоичного файла с открытым исходным кодом , в котором объясняется, как использовать Xcode для «упаковки» универсального двоичного файла с использованием сценариев сборки. Это, вероятно, ваш лучший путь к здравомыслию. Вы можете использовать lipo, но в долгосрочной перспективе, если вы собираетесь обновлять и поддерживать свое приложение, наличие проекта XCode, который сделает для вас чудо, займет намного меньше вашего времени.

1 голос
/ 19 августа 2009

Чтобы создать Universal Binary, вы должны использовать Xcode и выбрать целевую архитектуру Intel и PPC. Насколько я знаю, вы не можете просто вставить два разных двоичных файла в один .app ex post facto.

...