gradle vs flash builder build, ane/native extension not inluded
Hello Yennick and everyone else, I continued my little textadventure in creating an ios-autobuild using gradlefx for our project but I stumbled across another issue:
While the flash-builder succeed on packaging the project, the gradle build invoking adt failed with error message: "libX.a are required to have universal iOS libraries." (-> log is attached) on the same directory
Obviously either the gradlefx and Flashbuilder configuration differs or gradlefx invokes compile/packer differently than Flashbuilder. I triple checked the paths and configured parameter (gradlefx file and FB project settings). My special conditions:
- libX.a cannot be compiled as 64 Bit code (according to our in-house ANE developer); I guess the "universal iOS lib" refers to a kind of 64 Bit, and the error message can be read as "provide a ANE with 64 Bit (libX.a is included in our ANE)".
- libX.a should work with air 14 and do successfully build on FB with Air14 Flex4.13.
- I had successfully generated an ipa file, successfully uploaded to and launched on my IPad *but* a clean (gradle) rebuild destroyed my illusion. Could my FB builds influenced my gradle builds? (The source but not the build/package directories were the same.)
I tried different attempts: a) include everything (to get missing files) or parts
b) hardcode path to used sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk (as done in FB).
Any suggestion or comment is warmly welcome; do I need to provide a compiler flag (which e.g. is default in FB) to enforce 32 Bit compatibility (saying, yes, I don't want using universal libs)? Do I need to include my ane-file with a special options saying compiler/adt to not use univeral libs?
Best regards,
Matthias
- lastloglines.txt 2.5 KB
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Yennick Trevels on 04 Feb, 2016 06:38 PM
Hi,
I think the reason is because you've set 'nonLegacyCompiler' to true. Therefore the new AIR compiler will be used when packaging the project. This compiler is faster than the legacy compiler, but compiles to 64-bit, so that it is compatible with 64-bit iOS.
Quote from Adobe's release notes:
So what you probably actually want to do is turn this property off by setting it to false.
2 Posted by Matthias Keller on 05 Feb, 2016 09:06 AM
Hi, thanks for your insane fast response :), I already tried to toggle the "nonLegacyCompiler"-switch (I missed to mention that, sorry; the way you explained it, makes playing with this switch pointless... :) I was/am a bit frustrated and out of ideas.)
I attached parts of the config file, maybe it helps; I call
gradle clean && gradle --info --console rich releaseIOS -Pversioning=gittag
(where releaseIOS task dependsOn packageMobile, versioning is a variable I evaluate to set project.config.versionNumber)
Support Staff 3 Posted by Yennick Trevels on 07 Feb, 2016 10:51 AM
Hi Matthias,
I can't find the issue, everything seems to indicate that something was compiled with AIR 16 (or with the new adt compiler), but I can't pinpoint what.
Also, one thing I noticed which is probably unrelated to your issue, but which got my eye:
"airMobile.targetDevice = true": Quite sure 'true' isn't a valid value here. the targetDevice GradleFx property is actually the "-device" adt option, so expects the same values. For more on this, see: http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d128f...