Can't compile 64-bit AIR ANE with ADT
Asked Answered
P

1

6

I'm trying to compile the Adobe tutorial ANE (GitHub repo here, Tutorial here) for armv7 and arm64 architectures to bring it up to date.

ADT is failing, with 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

However, lipo -info ios/libIOSVolumeLib.a reports: ios/libIOSVolumeLib.a are: i386 x86_64 which I think means that the file is OK.

My XCode project settings clearly show:

  • Architectures are using Standard Architectures (armv7 arm64)
  • "Build active architecture only" is set to NO
  • "Valid Architectures" are armv7 armv7s arm64
  • My build configuration is set to "release"

Everything builds OK. The libIOSVolumeLib.a file is being copied to the appropriate folder structure that is referenced by the ADT build command.

The ADT build command I'm using is: 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 .

The ADT I'm using is in the bin folder of the latest Adobe AIR SDK (AIR v.18) that I just downloaded today. I do not know whether this is the SDK that is being used, but I'm assuming that it is, since ADT is in a subdirectory of this SDK folder.

How do I resolve this error?

Priory answered 16/7, 2015 at 19:58 Comment(1)
I don't have any experience with XCode but the issue here looks like a mismatch between the architecture libIOSVolumeLib is built for (Intel x86 arch) and the architecture that you need (arm arch). The output should have been something like ios/libIOSVolumeLib.a are: arm7 arm64Drumm
P
1

The solution is resolved and the answer seems to be that I was checking against the wrong set of build files. Make sure you're building to "iOS Device" and NOT the specific device you happen to have plugged in to your USB port.

This is what solved the issue for me - moving the built .a file to the appropriate build folder of the ANE and running lipo -info on that file displayed the expected architectures.

Priory answered 27/7, 2015 at 21:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.