Retina ディスプレイの IPhone/iPod touch デバイス + IPad でのみ使用するためのユニバーサル アプリケーションを開発しています。これを plist またはアプリ/バイナリの他の場所で指定するにはどうすればよいですか?
UIRequiredDeviceCapabilities
front-facing-camera
IPhone/iPod を必要とすることを指定できますが、それは IPad 1 を除外するため、両方のデバイスに対してトリックを実行しません。
Retina ディスプレイの IPhone/iPod touch デバイス + IPad でのみ使用するためのユニバーサル アプリケーションを開発しています。これを plist またはアプリ/バイナリの他の場所で指定するにはどうすればよいですか?
UIRequiredDeviceCapabilities
front-facing-camera
IPhone/iPod を必要とすることを指定できますが、それは IPad 1 を除外するため、両方のデバイスに対してトリックを実行しません。
これを実際に行うことはお勧めしませんが、それがどのデバイスであるかを調べて、メソッド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...」という画面をロードするだけでよいのでしょうか。ただのアイデア。
これはできません。UIRequiredDeviceCapabilities は、アプリ/ゲームが実際に必要とする、または除外する機能を制限するために使用する必要があります。開発者がそれらをサポートしたくないという理由だけで、特定のデバイスのセットを制限するために使用することを意図したものではありません。したがって、基本的には、現在最新の OS に更新されているすべてのデバイスを常に念頭に置いて設計する必要があります。