Как мне удалить секцию ppc в рамках рыча? - PullRequest
10 голосов
/ 21 апреля 2011

Теперь я добавляю поддержку уведомлений рычания в свое приложение, когда я отправляю его в магазин приложений Mac с помощью органайзера, он говорит, что «Неподдерживаемая архитектура - исполняемые файлы приложения могут поддерживать одну или обе архитектуры Intel:

i386(32-разрядная версия) x86_64 (64-разрядная версия) "Наконец-то я обнаружил, что это проблема библиотеки Growl, поэтому мне нужно удалить секцию ppc в рычании, так что, как?Пожалуйста, помогите ..

Ответы [ 2 ]

19 голосов
/ 21 апреля 2011

Используйте утилиту командной строки lipo, которая удаляет архитектуры с толстых двоичных файлов (какое подходящее имя). Сначала проверьте, какие архитектуры существуют в вашей среде Growl:

$ lipo -info path/to/Growl.framework/Growl
Architectures in the fat file: Growl are: x86_64 i386 ppc

В этом случае у нас просто есть ppc, но есть около 10 вариантов (из которых я встречал 3). Чтобы избежать каких-либо неожиданностей, вы должны запускать эту команду каждый раз, когда вы хотите удалить архитектуру из файла, а не просто переходить к части удаления. (Если вам интересно, man 3 arch содержит исчерпывающий список возможных архитектур для толстых двоичных файлов в Mac OS.)

Затем удалите архитектуру ppc:

$ lipo -remove ppc path/to/Growl.framework/Growl -output GrowlIntel

Найдите настоящий бинарный файл Growl (где-то должен быть в разделе Версии) и замените его на GrowlIntel.

0 голосов
/ 01 августа 2011

Вы также можете использовать "то же самое".Я представил свое последнее приложение Mac с включенными в него фреймворками, которые лишены поддержки ppc, используя две команды ниже.Нет отказов от Apple.

$ ditto -rsrc --arch i386 --arch x86_64 Growl-WithInstaller Growl-WithInstaller_noppc
$ lipo -info Growl-WithInstaller_noppc
...