为什么我的iOS应用程序与旧设备(例如iPhone 4S,5,iPad 2)不兼容?

问题描述:

我用xcode创建了应用程序,并选择通用作为设备,部署目标是iOS 8.0。为什么我的iOS应用程序与旧设备(例如iPhone 4S,5,iPad 2)不兼容?

我将我的应用程序发送到App Store并获得批准,但我在应用程序页面上看到了该列表。

需要iOS 8.0或更高版本。兼容iPhone 5s,iPhone 6,iPhone 6 Plus,iPhone 6s,iPhone 6s Plus,iPhone SE,iPad Air,iPad Air Wi-Fi +手机,iPad mini 2,iPad mini 2 Wi-Fi + Cellular,iPad Air 2,iPad Air 2 Wi-Fi + Cellular,iPad mini 3,iPad mini 3 Wi-Fi + 手机,iPad mini 4,iPad mini 4 Wi-Fi + Cellular,12.9英寸iPad Pro,12.9英寸iPad Pro Wi-Fi + Cellular,9.7英寸iPad Pro,9.7英寸 iPad Pro Wi-Fi + Cellular和iPod touch(第6代)。

我需要支持iPad 2,iPad 3,iPad 4和iPhone 4S以及iPhone 5.我该怎么办?

+0

也许你创建了一个仅64位的应用程序? –

+0

armv7在构建设置中被视为有效的体系结构。 – mTuran

+0

查看@ Summer的评论,如果arm64列在“所需架构”中,则将armv7列为有效无关紧要。你能发布你的项目设置的任何截图吗? –

检查构建设置 - >架构。确保您包含armv7作为有效的体系结构。

另请尝试将适合iPhone 5屏幕尺寸(320 * 568)的应用预览屏幕截图添加到iTunes Connect。

编辑

我仔细检查过我的应用程序在App Store。应用程序功能描述为“需要iOS 7.0或更高版本。与iPhone,iPad和iPod touch兼容。”

我建议您确保iTunes Connect中的”设备要求“部分是正确的。为此,请选中“活动 - > iOS版本 - >版本X.X - >设备要求”。我在这里的设置如下(不支持iPad):

enter image description here

最重要的部分是检查“需要的能力”一节中不包括“arm64”。在此基础上Apple Doc

为了有资格安装在 开始本文件所列的设备上,应用程序必须被编译为 的ARMv7(除arm64),必须不包括arm64需要 设备能力。

您可以在同一doc的“删除arm64所需设备功能”部分找到解决方案。

最后的手段:从您的开发人员门户向Apple提供专门针对您的应用程序功能问题的技术支持。

+0

你好,我已经上传了3.5“截图到iTunes已经是这个我的设置:https://s31.postimg.org/k969oi36z/Screen_Shot_2016_07_26_at_20_45_47.png – mTuran

+0

@mTuran我已经添加了一些关于我的答案可能的解决方案的更多信息。您的iTunes Connect是否与我的功能相同? – Summer

检查您的info.plist文件中是否有任何需要使用UIRequiredDeviceCapabilities密钥的64位系统。

你提到的那些设备列表是64位设备。可能你只编译64位设备。如果您使用64位设备进行调试,则可能会发生此错误。

在构建设置,还有本场

Build Active Architectures Only 

务必将NOReleaseYESDebug

,并且确保你有这些:arm64 armv7 armv7sValid Architectures下领域。

为什么不像Xcode 6.0那样在旧的Xcode上创建构建,并尝试在iPhone 5和iPad2上安装构建?看看这是否有助于你。

查看@ Summer的评论,如果arm64列在“所需架构”中,则将armv7列为有效并不重要。

此外,请注意,有时您特定目标中的设置可能会覆盖项目中的设置。

这里是哪里我想看看截图:

在您的info.plist: In your info.plist

在您的项目设置: In your project settings