适用于iPhone / Ipod Touch的通用应用仅限第4代+ IPad

时间:2011-06-06 15:05:31

标签: iphone ios ipad universal-binary

我正在开发一种通用应用程序,仅用于Retina显示器IPhone / IPod触摸设备+ IPad。如何在plist或app / binary中的任何其他位置指定此项?

UIRequiredDeviceCapabilities不会为两个设备提供技巧,因为我可以指定我需要front-facing-camera用于IPhone / IPod,但这会排除IPad 1。

2 个答案:

答案 0 :(得分:0)

这不可能。 UIRequiredDeviceCapabilities应该用于限制您的应用程序/游戏真正需要或排除的功能,它并不意味着仅仅因为开发人员不想支持它们而限制某些设备。所以基本上你应该总是设计时要记住当前正在更新到最后一个操作系统的所有设备。

答案 1 :(得分:0)

我不建议这样做,但你可以找出它是什么设备然后如果方法isCorrectDevice返回true则基于加载你的应用程序:

- (BOOL) isCorrectDevice
{
    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];
    free(machine);

    if ([platform isEqualToString:@"iPhone3,1"] ||
        [platform isEqualToString:@"iPhone3,2"] ||
        [platform isEqualToString:@"iPod4,1"] ||
        [platform isEqualToString:@"iPad1,1"] ||
        [platform isEqualToString:@"iPad2,1"] ||
        [platform isEqualToString:@"iPad2,2"] ||
        [platform isEqualToString:@"iPad2,3"])
        return true;
    else
        return false;
}

这样做有一些问题。一个是,一旦Apple发布新设备,这将是过时的,不会包括更​​新的设备;而且,这不会阻止其他设备的用户下载它。我想你可以加载一个屏幕,上面写着“仅适用于...”?只是一个想法。