将Sprite Kit游戏限制在较新的手机上?

5
我正在完成一个SpriteKit游戏,该游戏已在iPhone5 / 5S(1136 * 640)上开发和测试,游戏在这两个设备上以60fps运行。我还编写了一个支持iPhone4 / 4S(960 * 640)的版本,尽管我正在较慢的iPhone 4上进行测试,但这个版本的帧率只有20fps,并且即使我预加载所有资源,它也可能在初始加载时出现卡顿/跳跃。

我的理解是我需要提交这两个版本,但可以在说明中指定“此应用程序需要iPhone 5或更高版本”

我的问题是:我能限制应用程序仅适用于iPhone5 / 5S吗?我想可能会有[所需设备功能],如“Requires_Advanced_Processor”之类的设置。对于游戏来说,要在旧硬件上提供良好的体验特别困难,我只是意识到发布iPhone 4 / 4S版本可能会引诱一些人下载并获得不理想的体验,除了在提交应用程序时添加上述说明之外,我还能做些什么呢?

2个回答

3
我一直在研究这个问题。从我所掌握的情况来看,答案是你可以(而且应该)明确指定你的应用程序的最低要求,但你也必须确保其与所有当前的iPhone型号兼容。
苹果的App Distribution Guide->设置架构部分->“重要提示:商店会拒绝仅支持armv7s的二进制文件。如果在有效架构列表中包含armv7s,则必须同时包含armv7。”
如果你的应用在4s上运行不流畅,你可以选择推迟发布,直到4s兼容性要求被取消(可能是在iPhone 6发布时)。

1
当我发布iOS游戏并出于性能原因想要放弃iPhone 4的兼容性时,我遇到了同样的问题。
我同意你的观点。我会避免使用“此应用需要iPhone N或以上版本”这种解决方案,因为很多用户不会阅读应用程序描述。他们可能会在不支持您的设备上下载和安装游戏,并因性能不佳而给您留下差评。
您可以通过将iOS 8作为要求来排除iPhone 4。事实上,iOS 8将在以下iPhone / iPod上运行:iPhone 4s,iPhone 5,iPhone 5c,iPhone 5s,iPod touch第5代:https://www.apple.com/ios/ios8/(如果您计划在iOS 8发布几个月后发布游戏,则通常的iOS高采用率不会有太大问题)。
我为我的游戏采用的解决方案是,在游戏中检测设备是否为iPhone 4/4s,并禁用一些与游戏玩法无关的图形效果。我不知道你的游戏是什么,但你可以做很多事情(例如删除粒子发射器,使用更简单的背景等)。这是我为检测编写的代码(请查看第二种方法):
(很抱歉,这是老式的Objective-C代码!)
@implementation G1Utils:NSObject
+ (BOOL)isiPhone {
    return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone;
}
+ (BOOL)isiPhone3Dot5Inches {
    return [self isiPhone] && [[UIScreen mainScreen] bounds].size.height == 480;
}
@end

P.S:在这里您可以找到设备兼容性矩阵https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html#//apple_ref/doc/uid/TP40013599-CH17-SW1

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