如何限制我的应用仅适用于 iPhone 6 和 6 Plus?
Posted
技术标签:
【中文标题】如何限制我的应用仅适用于 iPhone 6 和 6 Plus?【英文标题】:How do I restrict my app for only iPhone 6 and 6 Plus? 【发布时间】:2015-04-16 10:41:58 【问题描述】:上下文
我正在开发一款目前在 iPad 设备上运行的填字游戏应用。 苹果最近发布了 iPhone 6 和 iPhone 6+ 设备,幸运的是它们有更大的屏幕,因此有资格运行我的游戏(我已经在 iPhone 5S 设备上测试了我的游戏,如果发现用户运行起来不愉快在这样的屏幕尺寸)。
通过这种方式,我决定将我的应用程序迁移到一个通用二进制文件,其中包括对 iPhone 6、iPhone 6 Plus 和 iPad 设备的支持。
问题
-
有什么方法可以限制我的 ios 应用只能在 iPhone 6 和 iPhone 6+ 设备上运行?
或者,至少:
-
有什么方法可以限制我的 iOS 应用只能在 iPhone 6+ 设备上运行?
【问题讨论】:
没有。见***.com/questions/17903577/…,基本是一样的。 这不完全一样。这两个新设备可能会引入允许我限制它的独立功能。可能与否,这仍然是一个相关问题 - 与您指出的问题不完全相同。 这是同一点。 Apple 不允许您将应用程序限制为特定型号。您可以根据所需的设备功能(例如 M7 芯片或陀螺仪)进行限制。但是您的应用程序必须确实需要这些功能,否则它将被拒绝。想办法支持 3.5" 和 4" 设备或只支持 iPad。 感谢您的帮助。关键是:如果我需要的能力是屏幕分辨率/尺寸怎么办?我看不出与您提到的功能有任何区别,这只是以相同方式将应用程序限制为特定模型的另一层间接性。注意:我不是经验丰富的 android 开发人员,但我已经在 Android 平台上部署了相同的应用程序,并且无论如何我都能够从部署目标中删除“smallScreens”。 Apple 不提供屏幕尺寸作为必需的设备功能。这是关键 - 任何 iPhone 应用程序都必须在 iPad 上按原样运行,这需要支持 3.5" 屏幕才能工作。这就是 iPhone 应用程序必须支持 3.5" 和 4" 屏幕以及可选(可能很快需要)支持的原因适用于 iPhone 6 机型。 【参考方案1】:我知道这可能为时已晚,而且可能无论如何也无法回答这个问题,但我想“这到底是怎么回事”——这是一段很好的代码来确定设备的范围,以防万一您可能需要不同的功能.
#import <sys/sysctl.h>
-(BOOL)isANewerDevice
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
NSString * ending = [platform substringFromIndex:[platform length]-3];
double convertedNumber = [[ending stringByReplacingOccurrencesOfString:@"," withString:@"."] doubleValue];
//Devices listed here: https://***.com/questions/19584208/identify-new-iphone-model-on-xcode-5-5c-5s
if ([platform containsString:@"iPhone"])
if (convertedNumber >= 7.1) // 6 and above
return YES;
else
return NO; //less than a 6 (ie 5S and below)
else if ([platform containsString:@"iPad"])
if (convertedNumber >= 5.3) //iPad Air 2 and above
return YES;
else
return NO; //iPad Mini 3 and below
//Failsafe
return NO;
代码中注释的链接:Identify new iPhone model on xcode (5, 5c, 5s)
注意。由于有containsString
,这会在低于8的iOS版本上崩溃。要支持https://***.com/a/26416172/1197723
玩得开心!
【讨论】:
以上是关于如何限制我的应用仅适用于 iPhone 6 和 6 Plus?的主要内容,如果未能解决你的问题,请参考以下文章
如何限制 iOS 应用程序仅适用于 iPhone 不包括 iPad?
使用 Xcode 9 启动仅适用于 iPhone 的应用程序