ChatGPT解决这个技术问题 Extra ChatGPT

iOS app submission : missing 64-bit support

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 :

https://i.stack.imgur.com/TXpQT.png

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.

We too have this issue. :(
Also since yesterday only ?
1) try clearing the DerivedData for Xcode after you change that; 2) maybe are you using an older external api, sdk, framework, etc
@Tim Did you manage to fix this ? can you please post solution for that ?
Hi, sorry I did not found the solution, and I'm not working on this project anymore. For now it's just a warning, so I've been able to submit the app.

B
Brian Webster

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:

https://i.stack.imgur.com/kbPz5.jpg

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


Thanks for your answer, but as stated in my question I already tried that, and the project does not compile with this settings :/
@Tim, yes me too had armv7 and arm64 in Architechtures. Still, missing 64-bit support warning occurs while validating the app for submissiion.
@NAZIK do you have arm64 in both lines (Architectures and Valid Architectures)? I had the same error and this was the solution
@Tim try to clean your DerivedData and check your latest external framework or SDK if they have 64 bit support
Also, make sure your device is NOT connected when archiving the final build. See @powertoold answer bellow (stackoverflow.com/a/26848865/1715004)
p
powertoold

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.


Hats off! :D you've saved my time
Big help!! Saved me a lot of time on this one. Good tip for upgrading old apps.
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.
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
FYI I had to unplug my device, switch to simulator and then switch back to "iOS Device" for this to work.
N
Nick Entin

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!

https://i.stack.imgur.com/HEnT9.png


>not reflected in "Valid Architectures" even if it is shown as Standard This was the point for me. Thx!
In case it helps others, I had to change in both Project and Target to get to work
@djburdick Thanks. That worked for me when nothing else did.
h
hrast

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


L
Leonel Folmer

Today I solve that problem with the following steps:

Building Settings:

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

Valid Architectures: armv7 armv7s arm64

Clean and build your app with the iPhone connected Disconnect your iPhone and check the top bar if is in "iOS Device" Archive Validate and Submit


@Timuçin. Sorry for my late reply, you're right is: armv7 armv7s arm64.
K
Kirit Vaghela

Just Create a New Project using latest xCode version and find the Build settings. The new project created using latest version have 64 support by default.

https://i.stack.imgur.com/3Oay9.png


less than 2% people are using iOS 6 or less. developer.apple.com/support/appstore
p
prad

Okay this was insane. I tried every single answer. But it worked only when I placed arm64 before armv7 and armv7s in Valid Architectures.

P.S. : xcode version : 7.2


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.
u
user3616535

I solved the problem by changing,

Architectures: arm7,arm64

Valid architecture: arm7,arm64

Build active architecture only : Yes


B
Bkillnest

https://i.stack.imgur.com/qE2hF.png

(Archived with real device)


Should set release mode to no
M
Mountain Man

Got rid of every warning. Went through everything over and over. Found the one word answer here above.

"Build Active Architecture Only - NO (specially... if your connected device is not arm64 compatible)"

My iPad is not 64 bit. Put in NO for Build Active Architecture and my submission worked!


u
user1122069

Change your iOS development target to at least 5.1.1 or alternatively delete the standard architectures setting and re-apply it. You might have seen a warning that arm64 is not compatible with your build target. On the overview page, check both the build and target "deployment target" settings. In my case, the target was 6.0, but the project was 5.0.

Also, check "Valid Architectures" in both your target and your project. I had the right settings on the project but not on the target. After this, it worked for me.

Switch between project/target on the overview page in the top left corner of the box.


You really mean 5.1.1? 5.1 isn't recent enough?
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.
P
PRITAM SATPUTE

Please check Build Active Architecture option. Set it to NO. It works for me.


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now