iOS app submission : missing 64-bit support

70,748

Solution 1

Use "Standard architectures" like this:

  • Architecture: "Standard architectures" arm7, arm64
  • Valid Architectures: "arm64" , armv7...
  • Build Active Architecture Only - NO (specially... if your connected device is not arm64 compatible)

like this:

enter image description here

  • Additionally, unplugging iphones and ipads from the mac has been known to help, especially if they are 32-bit versions.

Solution 2

After confirming the correct architectures, make sure your device is NOT connected to your computer when ARCHIVING the final build to submit to the App Store.

The reason this warning appears is because the DEVICE you have connected is probably not arm64 compatible.

Solution 3

As Tony wrote, it's important to have in both lines those settings. Since my (and obviously your) project was created yet before arm64 was added to standard, it is not reflected in "Valid Architectures" even if it is shown as Standard.

What I did:

  • I went to Project (vs. Target) configuration
  • Typed "arm64" in the Valid Architectures (it's automatically reflected in targets and schemas

After clean/build I even get some warnings about improper conversion of float to CGFloat, etc., so the settings obviously applied.

The validation warning disappeared too!

enter image description here

Solution 4

Unplug your physical device from Mac. In XCode on device list choose iOS Device and create Archive again. It worked for me.

Solution 5

Today I solve that problem with the following steps:

Building Settings:

Architectures: Standard architectures(arm7,arm64) - $(ARCH_STANDARD)

Valid Architectures: armv7 armv7s arm64

  1. Clean and build your app with the iPhone connected
  2. Disconnect your iPhone and check the top bar if is in "iOS Device"
  3. Archive
  4. Validate and Submit
Share:
70,748
Tim Autin
Author by

Tim Autin

Updated on July 09, 2022

Comments

  • Tim Autin
    Tim Autin almost 2 years

    I sent an app yesterday for review, with no problem. I then realized that I had a very little fix to do (changing the max zoom level of a map from 19 to 18, nothing else), so I removed the binary from iTunes Connect, and tried to resubmit.

    Now I'm having this warning :

    warning_xcode

    I don't understand why, as my architectures are :

    • architectures : armv7
    • valid architectures : armv6, armv7, armv7s, arm64

    The app runs fine in the simulator. If I try to use the standard architectures (armv7, arm64) as recommended in the warning, then the app won't build and I get :

    • Undefined symbols for architecture x86_64
    • ld: symbol(s) not found for architecture x86_64

    I'm using the lib route-me, and I set the same architecture settings.

  • Tim Autin
    Tim Autin over 9 years
    Thanks for your answer, but as stated in my question I already tried that, and the project does not compile with this settings :/
  • Nazik
    Nazik over 9 years
    @Tim, yes me too had armv7 and arm64 in Architechtures. Still, missing 64-bit support warning occurs while validating the app for submissiion.
  • TonyMkenu
    TonyMkenu over 9 years
    @NAZIK do you have arm64 in both lines (Architectures and Valid Architectures)? I had the same error and this was the solution
  • TonyMkenu
    TonyMkenu over 9 years
    @Tim try to clean your DerivedData and check your latest external framework or SDK if they have 64 bit support
  • Vaibhav Limbani
    Vaibhav Limbani over 9 years
    Hats off! :D you've saved my time
  • Romain
    Romain over 9 years
    >not reflected in "Valid Architectures" even if it is shown as Standard This was the point for me. Thx!
  • harry
    harry over 9 years
    Big help!! Saved me a lot of time on this one. Good tip for upgrading old apps.
  • Leonel Folmer
    Leonel Folmer over 9 years
    @Timuçin. Sorry for my late reply, you're right is: armv7 armv7s arm64.
  • Dirk
    Dirk over 9 years
    You really mean 5.1.1? 5.1 isn't recent enough?
  • user1122069
    user1122069 over 9 years
    It has been a long time. I don't know or remember the logic to this. Just do the steps and something may get back in its proper place. Fiddle with the architectures and all pages mentioned.
  • jxmallett
    jxmallett over 9 years
    I believe you can keep your non-64bit devices connected if you change the build setting Build Active Architecture Only to No. This will force xcode to build the 64bit binary regardless of what device is connected.
  • Kirit  Vaghela
    Kirit Vaghela about 9 years
    less than 2% people are using iOS 6 or less. developer.apple.com/support/appstore
  • ZYiOS
    ZYiOS about 9 years
    Should set release mode to no
  • djburdick
    djburdick about 9 years
    In case it helps others, I had to change in both Project and Target to get to work
  • KarenAnne
    KarenAnne about 9 years
    In addition to @jxmallett 's answer, make sure your Scheme configuration Archive is set to Release, in which the Build Active Architecture is set to No. Set Archive Scheme
  • Dave Chambers
    Dave Chambers almost 9 years
    @djburdick Thanks. That worked for me when nothing else did.
  • Filipe Borges
    Filipe Borges almost 9 years
    Also, make sure your device is NOT connected when archiving the final build. See @powertoold answer bellow (stackoverflow.com/a/26848865/1715004)
  • Tejas
    Tejas almost 9 years
    Thanks bro..... Its simply great..... Has solved problem that was pending from long time....
  • nwkeeley
    nwkeeley almost 9 years
    FYI I had to unplug my device, switch to simulator and then switch back to "iOS Device" for this to work.
  • Kevin Qi
    Kevin Qi over 8 years
    I also had to do a Product -> Clean Build Folder.. step before this worked
  • maxweber
    maxweber about 8 years
    Yup. only then and only after connecting a device did the actual log of errors show. Then some lines of code which are deprecated and required (red) fixing and some issues with the RSA lib showed up.
  • bisma
    bisma about 8 years
    Additionally, unplugging iphones and ipads from the mac has been known to help, especially if they are 32-bit versions. ... Most helpful line for me.