App Store 提交仅限于某些 iOS 目标设备
Posted
技术标签:
【中文标题】App Store 提交仅限于某些 iOS 目标设备【英文标题】:Restrict to certain iOS target devices for App Store submission 【发布时间】:2012-04-17 12:52:46 【问题描述】:由于在 iPhone 4 硬件上运行出现问题,我的 iTunes App Store 提交被退回。
基本上,该应用程序被编写为将所有网络活动集中到后台线程,以便在等待服务器响应慢速(蜂窝)数据连接时 UI 不会锁定。这在 iPad 2 + iPhone 4S 等双核设备上运行良好,但在 iPad/iPhone 4 等较旧的单核硬件上会导致响应时间缓慢和错误。
我确实在我的提交中包含了这样的注释,但我想知道是否有正式的方法来限制 iTunes Connect 中的目标设备?
干杯!
【问题讨论】:
不,您不能限制设备,但您可以限制应用程序可用的 ios 版本。例如 iOS 5.1+ 听起来你的代码有问题。标准网络活动不应导致您描述的问题。 您不需要多个内核即可在后台线程上运行代码。在我听说过的任何处理器上都没有每核一个线程策略。 这可能会解决您的问题。 itworld.com/article/2934373/… blog.manbolo.com/2012/05/02/… 【参考方案1】:其实可能有办法:
在Info.plist
中将项目添加到UIRequiredDeviceCapabilities
并要求bluetooth-le
应将您的应用程序限制为iPhone 4S/5 和iPad 3、4 和mini。
如果需要,您还可以提出 camera-flash
要求,将应用程序限制为仅适用于 iPhone。
见DeviceCompatibilityMatrix
【讨论】:
没有考虑过蓝牙乐。为此+1。你不应该走极端,只使用闪存来制作 iPhone……你可以根本不构建通用应用程序并实现这一目标。 尝试使用这种方法被我们的应用拒绝,所以它不是一个有效的方法。 我已经更新了链接。 @sss,如果您能详细说明一下,您做了什么以及如何解决您的问题,那将会很有趣...... 很抱歉,我们发现通过应用审核的唯一解决方案是通过删除一些功能并进行一些优化,让我们的应用在 iPhone 4 上运行。 我同意。我还有一个应用程序被 Apple 拒绝,因为 plist 中所需的功能在应用程序中没有使用。要么使用 plist 中所需的功能,要么必须从需求中删除它们。向 plist 添加要求只是为了限制硬件将导致您的应用被拒绝。【参考方案2】:很遗憾,目前没有,您可以使用一系列选项来限制用户购买应用程序,但由于内核的原因没有任何限制
列表: http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html
【讨论】:
我担心可能是这种情况。我想知道是否可以使用任何 API 来阻止应用程序在旧设备上运行? 它们可能存在,但它们不会首先限制用户下载它,真的不推荐这是一种耻辱,因为设备太旧而无法正常运行应用程序是一个大问题 这绝对是个问题。对于某些应用程序,尤其是那些使用 DSP 的应用程序,这不仅仅是“更好地编程”的情况,3G/3GS 甚至 iPhone 4 都无法处理那么多信号数据。【参考方案3】:我在调查时发现以下内容 - 这应该有助于您提交并获得 Apple 的批准,因为它是 Apple 的指导方针。
设备兼容性
信息属性列表 (Info.plist) 文件包含有关您的应用配置的关键信息,并且必须包含在您的应用程序包中。您在 Xcode 中创建的每个新项目都有一个默认的 Info.plist 文件,其中配置了有关您的项目的一些基本信息。您可以修改此文件来为您的应用指定其他配置详细信息。
UIRequiredDeviceCapabilities 键可让您声明应用运行所需的硬件或特定功能。所有应用程序都必须在其 Info.plist 文件中包含此密钥。 App Store 使用此密钥的内容来防止用户将您的应用程序下载到可能无法运行它的设备上。本章中的表格显示了所有 iOS 设备及其功能。
希望对您有所帮助。
【讨论】:
【参考方案4】:您只能在项目设置中将您的应用限制为iPhone
或iPad
,同时限制在App Store
中发布。
看看你可以在哪里设置类型。
要限制iPhone 4/4s
之类的某些模型,您应该以编程方式执行此操作,获取大小并重定向到某些ViewController
,通知此模型不支持您的应用。
查看这里如何获取屏幕尺寸。
CGSize result = [[UIScreen mainScreen] bounds].size;
switch ((int) result.height)
case 480:
NSLog(@"iPhone 4 / 4s");
break;
case 568:
NSLog(@"iPhone 5 / 5c / 5s");
break;
case 667:
NSLog(@"iPhone 6 / 6s");
break;
case 736:
NSLog(@"iPhone 6+ / 6s+");
break;
default:
NSLog(@"Other screen size, could be an iPad or new device model.");
break;
重要的是要记住,Apple 希望尽可能多地支持您的应用,而不支持特定型号可能会拒绝您的应用。但如果你只是不支持iPhone 4/4s
,你可能会照常发布。首先尝试调整您的代码以使用自动布局,除非您受某些设备型号的限制。
我有一个已发布的应用程序并限制iPhone 4s
。它已被批准使用。
【讨论】:
有没有办法排除 iPod?我的意思是,允许用户在 iPhone 和 iPad 上安装应用程序,但不能在 iPod 上... 您可以在 UIRequiredDeviceCapabilities 中设置所需的电话功能,甚至将其限制为仅支持 arm64 的设备。 developer.apple.com/documentation/bundleresources/…以上是关于App Store 提交仅限于某些 iOS 目标设备的主要内容,如果未能解决你的问题,请参考以下文章
iOS,App Store Connect:如何将 2 个应用程序目标部署到应用商店连接?
App Store 拒绝原因 - 是在线还是仅在电子邮件中?
是否可以通过互联网而不是 App Store 使 iOS 应用程序可用
提交到App Store的所有应用程序都必须支持仅IPv6网络