我可以为我的应用要求iPhone 5S吗?

14

我正在编写一个需要iPhone 5S上的M7运动协处理器芯片的应用程序。由于这个芯片不在其他任何iPhone设备上,因此该应用程序只能在iPhone 5S上正常运行。

有没有办法要求用户在下载我的应用之前必须拥有iPhone 5S呢?就像您可以使应用程序仅适用于iPad一样?

我正在寻找一种选择iPhone硬件要求的方法。而非iOS版本要求。

3个回答

10

我与苹果公司进行了沟通,目前的答案是否定的。您无法通过必需设备功能或其他方式指定需要iPhone 5S来运行特定应用程序。但是,您可以在应用程序描述中清楚地说明它需要iPhone 5S/M7运动协处理器,苹果将会接受。


如何使用metalopengles-3关键字来要求运动协处理器?似乎metal仅适用于iPhone 5之后的版本。 - Zack Braksa
我发布这篇文章时,不确定Metal或OpenGLES-3是否存在(也许存在?),但听起来值得一试。你能否尝试并回报结果?自从我发布这篇文章以来,我还希望防止没有气压计芯片(iPhone 6之前)的用户下载我的应用程序,但我最终只做了苹果告诉我的事情,即在应用程序描述中清楚地说明应用程序所需的内容,并编写错误消息并将其留在那里。 - Jackson
如果我试过了,但选择的路径不同于你,我肯定会回来这里报告的! - Zack Braksa

2

通常情况下,您可以通过在应用程序的info.plist中添加UIRequiredDeviceCapabilities键并指定与所需硬件功能相对应的值来执行此操作。但是,在列出的可能值中这里,似乎没有运动协处理器的价值。苹果可能仍会添加一个,但在此之前,也许您可以想出一些独特于 iPhone 5S 的组合值并指定它们。


有趣的是,我尝试将arm64添加到plist中所需的设备功能数组中,但它无法在我的iPhone 5S上构建和运行,因为它说我的应用程序的plist“指定了不符合iPhone要求的设备功能要求”。奇怪。难道iPhone 5S不是arm64吗? - Jackson
同时我在Xcode中收到了这个警告:警告:所有应用程序都应该包含armv7架构(当前ARCHS =“arm64”)。 所以我猜我不能只为arm64构建。 - Jackson
从技术上讲,5S拥有基于ARMv8架构64位处理器。这表明您想在属性列表中指定armv8,但是在苹果的文档中只列出了armv6armv7作为可能的值。(arm64不是该键的可能值,这可能是为什么它不能运行的原因。)不过,检查一下是否可以使用armv8也是值得的。这将遵循模式,而且可能是苹果还没有更新该列表。 - George WS
我刚试了一下。在“所需设备能力”部分中加入armv8也不能使其运行。只有armv7似乎可以工作。如果在发布新架构之前他们没有更新列表,那么这似乎是苹果公司一个很大的疏漏。 - Jackson
1
那太糟糕了。我唯一的想法是指定一组值的组合,这些值在苹果公司的列表中是唯一的,并且在一起使用时将与5S不同。如果这不起作用,我会在开发者论坛上询问并看看是否有任何苹果公司的人可以帮助您,并可能提出radar。理想的解决方案是该列表中存在一个值,您可以使用该值来指定运动协处理器本身。 - George WS
显示剩余4条评论

1

1
除了没有区分iPhone 5S和iPhone 5之外,其他都很好。无法要求armv8(64位芯片)或要求新的M7芯片。 - Jackson
2
金属和/或OpenGLES-3作为必需的设备能力,将区分5S和5。 - hotpaw2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接