Как мне удалить секцию ppc в рамках рыча?

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

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

2 ответа

Решение

Использовать 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 achitecture:

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

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

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

$ ditto -rsrc --arch i386 --arch x86_64 Growl-WithInstaller Growl-WithInstaller_noppc
$ lipo -info Growl-WithInstaller_noppc
Другие вопросы по тегам