2

Retina ディスプレイの IPhone/iPod touch デバイス + IPad でのみ使用するためのユニバーサル アプリケーションを開発しています。これを plist またはアプリ/バイナリの他の場所で指定するにはどうすればよいですか?

UIRequiredDeviceCapabilitiesfront-facing-cameraIPhone/iPod を必要とすることを指定できますが、それは IPad 1 を除外するため、両方のデバイスに対してトリックを実行しません。

4

2 に答える 2

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;
}

これを行うにはいくつかの問題があります。1 つは、Apple が新しいデバイスをリリースするとすぐに、これは時代遅れになり、新しいデバイスは含まれないということです。また、他のデバイスのユーザーがダウンロードするのを止めることはありません。「Only available on...」という画面をロードするだけでよいのでしょうか。ただのアイデア。

于 2011-06-07T19:21:09.607 に答える
0

これはできません。UIRequiredDeviceCapabilities は、アプリ/ゲームが実際に必要とする、または除外する機能を制限するために使用する必要があります。開発者がそれらをサポートしたくないという理由だけで、特定のデバイスのセットを制限するために使用することを意図したものではありません。したがって、基本的には、現在最新の OS に更新されているすべてのデバイスを常に念頭に置いて設計する必要があります。

于 2011-06-07T19:12:37.807 に答える