IOS 应用程序提交: 缺少64位支持

我昨天发了一个应用程序供审查,没有问题。然后我意识到我需要做的修改很少(将地图的最大缩放级别从19改为18,没有其他的) ,所以我从 iTunes Connect 中删除了二进制文件,并试图重新提交。

现在我收到这样的警告:

warning_xcode

我不明白为什么,因为我的建筑是:

  • 架构: armv7
  • 有效的架构: armv6,armv7,armv7,arm64

该应用程序在模拟器中运行良好。如果我尝试使用警告中推荐的标准架构(armv7,arm64) ,那么应用程序将无法构建,我会得到:

  • 体系结构 x86 _ 64的未定义符号
  • Ld: 未找到用于体系结构 x86 _ 64的符号

我使用的是 lib 路由器-me,我设置了相同的架构设置。

71627 次浏览

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.

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

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.

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.

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

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

I solved the problem by changing,

Architectures: arm7,arm64

Valid architecture: arm7,arm64

Build active architecture only : Yes

I submitted success by config as the image: enter image description here

(Archived with real device)

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.

enter image description here

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!

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

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