2

我正在开发一个通用应用程序,该应用程序仅用于 Retina 显示屏 iPhone/IPod 触摸设备 + IPad。如何在 plist 或我的应用程序/二进制文件中的其他任何地方指定它?

UIRequiredDeviceCapabilities对这两种设备都不起作用,因为我可以指定我需要front-facing-cameraiPhone/IPod 但这会排除 iPad 1。

4

2 回答 2

0

这是做不到的。UIRequiredDeviceCapabilities 应该用于限制您的应用/游戏真正需要或排除的功能,它并不意味着仅仅因为开发人员不想支持它们而限制特定的设备集。因此,基本上,您在设计时应始终牢记当前正在更新到上一个操作系统的所有设备。

于 2011-06-07T19:12:37.807 回答
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 发布了新设备,这将是过时的,并且不会包含较新的设备;而且,这不会阻止其他设备的用户下载它。我想您可以加载一个显示“仅在...上可用”的屏幕?只是一个想法。

于 2011-06-07T19:21:09.607 回答