因为在 iPhone 4 设备上出现了运行问题,我的iTunes应用商店提交被退回了。
基本上,这个应用程序的所有网络活动都会交给后台线程,以便UI不会在等待服务器在慢速(蜂窝)数据连接上传回响应时锁定。这在像iPad 2 + iPhone 4S这样的双核设备上运行良好,但会导致较旧的单核硬件如iPad/iPhone 4反应时间缓慢和错误。
我在提交中附上了相关说明,但我想知道是否有一种正式的方法来限制iTunes Connect中的目标设备?
谢谢!
因为在 iPhone 4 设备上出现了运行问题,我的iTunes应用商店提交被退回了。
基本上,这个应用程序的所有网络活动都会交给后台线程,以便UI不会在等待服务器在慢速(蜂窝)数据连接上传回响应时锁定。这在像iPad 2 + iPhone 4S这样的双核设备上运行良好,但会导致较旧的单核硬件如iPad/iPhone 4反应时间缓慢和错误。
我在提交中附上了相关说明,但我想知道是否有一种正式的方法来限制iTunes Connect中的目标设备?
谢谢!
实际上,可能有一种方法:
在你的Info.plist
中添加一个项目到UIRequiredDeviceCapabilities
,要求bluetooth-le
,这样就可以将你的应用限制在iPhone 4S/5和iPad 3、4和mini上了。如果需要,你也可以加入一个camera-flash
的要求,以仅限制应用在iPhone上。
目前还无法限制用户基于CPU核数购买应用,但是有一些选项可以帮助你限制用户的购买。你可以参考以下列表:
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;
}
需要记住的是,苹果公司希望您的应用程序得到最大可能的支持,而不支持特定型号可能会导致您的应用被拒绝。但是,如果您仅不支持 iPhone 4/4s
,那么您很可能会像往常一样发布。首先尝试适应自动布局,只有在不可能时才限制某些设备型号。
我有一个已发布的应用程序,并将其限制为 iPhone 4s
。它像往常一样被批准了。
我在调研中发现了以下内容 - 这应该可以帮助您提交并通过苹果的审核,因为这是来自苹果的指南。
设备兼容性
信息属性列表(Info.plist)文件包含有关您的应用程序配置的关键信息,并且必须包含在您的应用程序包中。您在Xcode中创建的每个新项目都有一个默认的Info.plist文件,其中配置了有关您的项目的一些基本信息。您可以修改此文件以指定应用程序的其他配置详细信息。
UIRequiredDeviceCapabilities密钥允许您声明应用程序运行所需的硬件或特定功能。所有应用程序都需要在其Info.plist文件中具有此密钥。应用商店使用此密钥的内容来防止用户将您的应用程序下载到无法运行它的设备上。本章中的表格显示了所有iOS设备及其功能。
希望对您有所帮助。