Ios 我如何限制我的应用程序仅适用于iPhone 6和6 Plus?

Ios 我如何限制我的应用程序仅适用于iPhone 6和6 Plus?,ios,iphone,xcode,size,screen,Ios,Iphone,Xcode,Size,Screen,上下文 我正在开发一款纵横填字游戏应用程序,目前在iPad设备上运行。 苹果最近发布了iphone6和iphone6+设备,幸运的是它们的屏幕更大,因此很容易运行我的游戏(我已经在iphone5s设备上测试了我的游戏,如果发现在这样的屏幕大小下运行对用户来说不愉快的话) 通过这种方式,我决定将我的应用程序迁移到一个通用二进制文件,其中包括对iPhone6、iPhone6Plus和iPad设备的支持 问题 有没有办法限制我的iOS应用程序只在iPhone 6和iPhone 6+设备上运行 或者,至

上下文

我正在开发一款纵横填字游戏应用程序,目前在iPad设备上运行。 苹果最近发布了iphone6和iphone6+设备,幸运的是它们的屏幕更大,因此很容易运行我的游戏(我已经在iphone5s设备上测试了我的游戏,如果发现在这样的屏幕大小下运行对用户来说不愉快的话)

通过这种方式,我决定将我的应用程序迁移到一个通用二进制文件,其中包括对iPhone6、iPhone6Plus和iPad设备的支持

问题

  • 有没有办法限制我的iOS应用程序只在iPhone 6和iPhone 6+设备上运行
  • 或者,至少:

  • 有没有办法限制我的iOS应用程序只在iPhone 6+设备上运行

  • 我知道这可能已经太晚了,而且可能还没有回答这个问题,但我想“这到底是怎么回事”——这是一段很好的代码,可以确定设备的范围,在某些情况下,您可能需要不同的功能

    #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://stackoverflow.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;
    }
    
    #导入
    -(BOOL)isANewerDevice{
    大小;
    sysctlbyname(“hw.machine”,NULL,&size,NULL,0);
    char*machine=malloc(大小);
    sysctlbyname(“hw.machine”,machine,&size,NULL,0);
    NSString*平台=[NSString stringWithCString:机器编码:NSUTF8STRINGENCONDING];
    免费(机器);
    NSString*ending=[platform substringFromIndex:[platform length]-3];
    double convertedNumber=[[ending StringByReplacingOfString:@”,“withString:@.”]doubleValue];
    //此处列出的设备:https://stackoverflow.com/questions/19584208/identify-new-iphone-model-on-xcode-5-5c-5s
    if([平台包含字符串:@“iPhone”]){
    如果(convertedNumber>=7.1){//6及以上
    返回YES;
    }否则{
    返回号;//小于6(即5S及以下)
    }
    }else if([平台包含字符串:@“iPad]”){
    如果(convertedNumber>=5.3){//iPad Air 2及以上
    返回YES;
    }否则{
    返回号;//iPad Mini 3及以下版本
    }
    }
    //故障保护
    返回否;
    }
    
    代码中注释的链接:


    注意。由于有
    containsString
    ,这将在低于8的iOS版本上崩溃。支持不,看,基本上是一样的,不是完全一样的。这两个新设备可能会引入不同的功能,这将允许我限制它。不管可能与否,这仍然是一个相关的问题——与你指出的问题并不完全相同。尽管这是同一点。苹果不允许你将应用程序局限于特定的型号。您可以根据所需的设备功能(如M7芯片或陀螺仪)进行限制。但你的应用程序必须真正需要这些功能,否则将被拒绝。找到一种支持3.5英寸和4英寸设备的方法,或者只支持iPad。我感谢您的帮助。问题是:如果我需要的功能是屏幕分辨率/大小,该怎么办?我看不出你提到的功能有什么不同,这只是另一层间接的限制,以同样的方式将应用程序限制在特定的模型上。注意:我不是一名经验丰富的Android开发人员,但我已经在Android平台上部署了相同的应用程序,并且我能够从部署目标中删除“小屏幕”。苹果不提供屏幕大小作为必要的设备功能。关键是,任何iPhone应用程序都必须在iPad上按原样运行,这需要支持3.5英寸屏幕才能正常工作。这就是为什么iPhone应用程序必须支持3.5英寸和4英寸屏幕,以及可选(可能很快需要)支持iPhone 6机型的原因。