• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

Error creating arm64 compatible ANEs

Participant ,
Dec 17, 2014 Dec 17, 2014

Copy link to clipboard

Copied

I'm trying to create ANEs with arm64 support with no success so far.

My native libraries are compiled for both armv7 and arm64 since lipo -info confirms so, however ADT still outputs:

"Error: Apple App Store allows only universal applications. This ANE must have a universal iOS binary. Please change build settings in Xcode project to "Standard Architecture" to create universal library."

Do I need to change something in my ADT commandline? I tried several ANEs and had problems with all of them. Could anyone provide further information or tips?

TOPICS
Air beta

Views

13.0K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 29, 2014 Dec 29, 2014

Copy link to clipboard

Copied

That library has no need for a platform that's actually why I use it in this case to figure out this issue. This is why I included the AIR 15 version working perfectly. I use a half dozen anes in my projects all developed by myself and compiling and working perfectly under AIR 15. Some of those anes require platform.xml, some like this one doesn't. Unless some requirement have changed with AIR 16 I don't think a platform.xml (empty in that case) should be needed to resolve the issue.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 02, 2015 Jan 02, 2015

Copy link to clipboard

Copied

Hi,

I'm having the same problem here, trying to compile an open source ANE I'd like to use in my project - all of their source files can be downloaded here:

AppsFlyerSDK/AdobeAirExtension-AppsFlyer · GitHub

I've modified their build.sh file to point to my local sdk folders, and can successfully build their IOS .a library file, but the compilation fails during they AIR packaging with this error:

****** creating ANE package *******

Error: Apple App Store allows only universal applications. This ANE must have a universal iOS binary. Please change build settings in Xcode project to "Standard Architecture" to create universal library.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 05, 2015 Jan 05, 2015

Copy link to clipboard

Copied

run lipo to make sure the .a is universal.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 06, 2015 Jan 06, 2015

Copy link to clipboard

Copied

Any update on this problem? The Apple deadline is coming soon and there's still no compatible AIR sdk. The amount of posts about this same problem is accumulating everywhere.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 06, 2015 Jan 06, 2015

Copy link to clipboard

Copied

A new beta has been released some hours ago, maybe it helps? I don't know. Did you try to create a platform XML with the namespace set to 16.0?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 07, 2015 Jan 07, 2015

Copy link to clipboard

Copied

The extension I'm testing does not require any platform.xml.

- Still same erroneous error with the latest SDK, the library.a is universal but adt can't see it and throw same misleading error.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 08, 2015 Jan 08, 2015

Copy link to clipboard

Copied

I'd say you lose nothing by trying to add a platform.xml with the namespace updated. I've successfully compiled a few universal ANEs, even with the latest SDK for Flex developers, not just the ASC2 version (didn't have the time to try with the previous one).

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 08, 2015 Jan 08, 2015

Copy link to clipboard

Copied

I tried, made no difference. There's an extra step required or extra settings that nobody can figure out, that seems obvious to me. Making an universal library.a is quite simple really and if that was the only requirement then everything would compile and the .ane would be generated.

The .ane component themselves are not in questions as they generate a working .ane with AIR 15 and swf-version 26 without problems.

Using AIR 16 the components enforce swf version 27 and the library.a is universal with both armv7 and arm64 (file size is doubled and confirmed by lipo -info), xml namespace is of course updated as well (16) but the same stubborn error keep showing and no .ane is generated. There's more to do than just creating an universal library.a since that part is easy. For me the error is just misleading and something else has to be done but what?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 08, 2015 Jan 08, 2015

Copy link to clipboard

Copied

Might be unrelated, but can you confirm your XCode project (and targets) is using a Deployment Target Version of at least 5.1.1?

Applications with arm64 slices aren't compatible with versions of iOS before 5.1.1

I guess you said you don't use a platform.xml but one benefit of using one is you can also confirm there you are setting an explicit minimum OS using the line:

<option>-ios_version_min 5.1.1</option>  (or whatever your app needs)

Additionally, AIR apps still default to using a minimum OS setting of 4.3 if you don't explicitly set this in your iPhone InfoAdditions app.xml with:

<key>MinimumOSVersion</key>

<string>6.0</string> (or whatever your app needs)

Though I guess this setting is for later when you actually get your ANE working...

Just some things to try... I've not run into problems building arm64 ANEs as you are seeing, but I set all of these minimum OS and deployment settings explicitly too.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 08, 2015 Jan 08, 2015

Copy link to clipboard

Copied

All check, I guess I'll try with a more recent mac to see if that changes anything. I did not get any feedbacks on my posted files so I guess that means they are all checking out fine.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 14, 2015 Jan 14, 2015

Copy link to clipboard

Copied

I am having this same exact problem.

I'm trying to update the "ContactEditor" ANE to support 64 universal but having no luck. https://github.com/memeller/ContactEditor

I've changed the architectures to be the armv7 and arm64.. I go to compile the ANE....

Error: Apple App Store allows only universal applications. "libContactEditor.a" is not a universal binary. Please change build settings in Xcode project to "Standard Architecture" to create universal library/framework.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Dec 25, 2014 Dec 25, 2014

Copy link to clipboard

Copied

I have the same problem, I've rebuild my .a file with xcode with enabled arm64, but adt error is the same -  "Please change build settings in Xcode project to "Standard archinecture". ASC 1. Now i'll try with asc 2.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Dec 25, 2014 Dec 25, 2014

Copy link to clipboard

Copied

Looks like asc 2 ignores architecture error. ASC 2 compile my .ane successfully, but my air project shows error anyway. I've check source .a file with LIPO command and see that arm64 was disabled.

I find error in my xcode project. When i've fix it - all works fine with flex compiler.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 25, 2014 Dec 25, 2014

Copy link to clipboard

Copied

So your source native library was actually not compiled for arm64?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Dec 25, 2014 Dec 25, 2014

Copy link to clipboard

Copied

When I enable x64 platform correctly in xcode and "lipo" shows that it's true - all was successfully compiled for arm64 just with flex sdk+air  compiler.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

Growing desperate. Can any of the person able to compile an universal ane share an empty project with the community so we can investigate further. The complete silence of Adobe staff on the subject means they have no clue what's going on. In all cases the .a library is universal but some can compile their ane, some can't. I did post my files which is a simple Alert ane working perfectly under AIR 15 and unable to compile under AIR 16. Can anyone give it a try and see if they can compile it?

At this point an empty project (an XCode project with no functionality) compile and generates ane under AIR 15 then integrate and runs perfectly under an AIR 15 ios project. Exact same project compiled as universal and checked under lipo (both architectures present) with swc build under AIR 16 and swf version forced to 27 does not compile under AIR 16 with the same stubborn error (not an universal library) on my 2 (recent) macs and PCs as well.

There's either a missing step that has to be performed under AIR 16 and not under any other versions or what AIR 16 calls an universal library is not a typical universal library generated by XCode and something else has to be done with that library in order for AIR 16 to recognize it. Either way the error thrown is misleading and is wasting the time of too many developer.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

freshplanet recently updated most of their iOS ANEs to support 64-bit which you can grab on github:

Freshplanet · GitHub

I actually follow freshplanet's build style as well, using an ant build.xml to completely build all XCode and AS3 code and combine into ANE all from a single ant build script.

I had zero issues making my 64-bit ANEs using AIR 16 and this ant build style.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

Thx, for the most part they only posted an updated ane, no updated .a or build script so I still have nothing to compare to. My anes are built the same way, I tried manually too and using ANEPacker, always coming out with same result. Thx anyway.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

Right, except that is because their XCode projects (for the most part) where already setup to build STANDARD ARCHS.

There is no other hidden step. Everything is there in full source. You can build their stuff from source and get the same results.

Likewise, I didn't have to change my build scripts to get 64-bit support, only make sure the XCode project was setup to build all architectures and use AIR 16 SDK.

There has to be something special about the files or process you are using, unless there are specific frameworks you are trying to use causing problems.

I'd only suggest maybe trying to replicate a build process without using ANEPacker and make it as pure as this full recompile from source ant build style.

It seems to be working for FreshPlanet and for all my ANEs I've rebuilt so far.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

Hi, I'm also having this problem building my ane... I'm wondering if someone can post a screenshot or a basic list of the Xcode Build Settings that would work. Here are mine. I assume something is wrong, unless the problem lies elsewhere (btw. I'm building with AIR 16.0)

Screen Shot 2015-01-19 at 4.30.49 PM.png

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

build active architecture only has to be set to "no".

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 19, 2015 Jan 19, 2015

Copy link to clipboard

Copied

Any of the freshplanet ANEs I just linked to above should be perfectly good examples of working 64-bit XCode projects.

However, just looking at your screenshot, you should definitely not have "Build Active Architecture Only" set to Yes, that should be No.

Also, it isn't clear from your screenshot, what selection you are looking at in XCode when you took the screenshot.

Make sure that when you have the "Target" selected you also have the standard architectures set (and not overridden just doing 32-bit), as opposed to when you just select the "Project" in the left hand side tree. You might have different (overriding) settings in "Target" versus "Project" level settings.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 20, 2015 Jan 20, 2015

Copy link to clipboard

Copied

Hi Jeff, yes my target and project levels both look the same, although I see what might be a vital difference in the .pbxproj file

In the FreshPlanet ANE, they have a line that looks like this in the 'buildSettings' section

ARCHS = "$(ARCHS_STANDARD_32_BIT)";

(and further down)

ARCHS = "$(ARCHS_STANDARD)";

In mine, I don't see those lines, instead I have:

VALID_ARCHS = "arm64 armv7 armv7s";

I then opened up the FreshPlanet/AirFlurry project and Xcode and saw only a few minor differences.

-At the 'project' level, they have 'architectures' set to $(ARCHS_STANDARD_32_BIT), but I can't see a way to set this for myself in Xcode.

-At the 'target' level, the part about 'architectures' is in bold-face type whereas mine is not.

Any ideas? Thanks!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jan 20, 2015 Jan 20, 2015

Copy link to clipboard

Copied

Ok, yea I think the PROJECT level setting is ignored and the TARGET settings are used (at least given the command line build calls FreshPlanet ant scripts calls)

So having $(ARCHS_STANDARD) used at the TARGET level is probably what is used.

Technically Apple is actually having developers phase out the use of arm7s so officially $(ARCHS_STANDARD) is just "arm7 arm64"

If you want to change to using $(ARCHS_STANDARD) just click/edit choose Other... and paste the actual string (without quotes) "$(ARCHS_STANDARD)"

That should then revert the setting to resolve to 'arm7 arm64"

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 22, 2015 Jan 22, 2015

Copy link to clipboard

Copied

Just a follow up, I was able to build my ANE without any errors. I wish I knew exactly what did it, but I just fiddled with Xcode given the advice from Jeff and eventually got it... A few times I forget to 'clean' the iOS project before building, which is vital when build settings change.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines