Как мне удалить секцию 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