Не удается скомпилировать 64-разрядную версию AIR ANE с помощью ADT

Я пытаюсь скомпилировать учебник Adobe ANE (репозиторий GitHub здесь, учебник здесь) для armv7 и arm64 архитектур, чтобы обновить его.

Ошибка ADT с Apple App Store allows only universal applications. "libIOSVolumeLib.a" is not a universal binary. Please change build settings in Xcode project to "Standard Architecture" to create universal library/framework

Однако lipo -info ios/libIOSVolumeLib.a сообщает: ios/libIOSVolumeLib.a are: i386 x86_64 что, по моему думаю, означает, что с файлом все в порядке.

Мои настройки проекта XCode ясно показывают:

  • Архитектуры используют Standard Architectures (armv7 arm64)
  • «Создать только активную архитектуру» установлено на NO
  • «Действительные архитектуры» — это armv7 armv7s arm64
  • Моя конфигурация сборки установлена ​​​​на «выпуск».

Все строится нормально. Файл libIOSVolumeLib.a копируется в соответствующую структуру папок, на которую ссылается команда сборки ADT.

Команда сборки ADT, которую я использую: adt -package -target ane Volume.ane extension.xml -swc VolumeLib.swc -platform iPhone-ARM -C ios . -platformoptions platformoptions.xml -platform Android-ARM -C android . -platform default -C default .

Используемый мной ADT находится в папке bin последней версии Adobe AIR SDK (AIR v.18), которую я только что скачал сегодня. Я не знаю, используется ли это SDK, но я предполагаю, что да, поскольку ADT находится в подкаталоге этой папки SDK.

Как устранить эту ошибку?


person Tom Auger    schedule 16.07.2015    source источник
comment
У меня нет опыта работы с XCode, но проблема здесь выглядит как несоответствие между архитектурой, для которой создана libIOSVolumeLib (архитектура Intel x86), и архитектурой, которая вам нужна (арка arm). Вывод должен был быть что-то вроде ios/libIOSVolumeLib.a are: arm7 arm64   -  person nitzanms    schedule 27.07.2015


Ответы (1)


Решение решено, и ответ, похоже, заключается в том, что я проверял неправильный набор файлов сборки. Убедитесь, что вы создаете «устройство iOS», а НЕ конкретное устройство, которое вы подключили к своему USB-порту.

Это то, что решило проблему для меня - перемещение встроенного файла .a в соответствующую папку сборки ANE и запуск lipo -info в этом файле отображали ожидаемые архитектуры.

person Tom Auger    schedule 27.07.2015