我正在開發的通用應用程序,只能用於視網膜顯示器IPhone/IPod觸摸設備+ iPad。如何在plist或我的應用程序/二進制文件的其他位置指定此項?通用應用程序的IPhone/Ipod觸摸僅第四代+ iPad
UIRequiredDeviceCapabilities
沒有爲這兩個設備做的伎倆,因爲我可以指定我需要front-facing-camera
爲IPhone/iPod,但將排除在iPad 1
我正在開發的通用應用程序,只能用於視網膜顯示器IPhone/IPod觸摸設備+ iPad。如何在plist或我的應用程序/二進制文件的其他位置指定此項?通用應用程序的IPhone/Ipod觸摸僅第四代+ iPad
UIRequiredDeviceCapabilities
沒有爲這兩個設備做的伎倆,因爲我可以指定我需要front-facing-camera
爲IPhone/iPod,但將排除在iPad 1
這不能做。 UIRequiredDeviceCapabilities應該用來限制你的應用程序/遊戲真正需要或排除的功能,它並不意味着僅僅因爲開發者不想支持它們而用於限制某些設備。所以基本上你應該始終設計,記住當前正在更新到最後一個操作系統的所有設備。
我不建議真的這樣做,但你可以只找出它是什麼設備,然後立足如果方法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;
}
這樣做有幾個問題這個。一種是,一旦蘋果發佈新設備,這將是過時的,將不包括較新的設備;而且,這不會阻止其他設備的用戶下載它。我想你可以加載一個只顯示「僅適用於......」的屏幕?只是一個想法。
爲什麼你絕對需要該設備配備視網膜顯示器? – 2011-06-06 15:55:19
在非視網膜顯示器上它看起來不夠好。這是一款遊戲,即使我們因此而失去一些買家,我們也不想提供次優體驗。 – elibud 2011-06-06 15:56:31
我不確定這是可能的;因爲您知道4.0.x +可用於3GS/4/Pad等,雖然有代碼可以檢測視網膜顯示是否可用,但在上傳到iTunes時該選項不存在。我認爲現在是不行的。 – Luke 2011-06-06 18:55:28