2011-06-06 68 views
2

我正在開發的通用應用程序,只能用於視網膜顯示器IPhone/IPod觸摸設備+ iPad。如何在plist或我的應用程序/二進制文件的其他位置指定此項?通用應用程序的IPhone/Ipod觸摸僅第四代+ iPad

UIRequiredDeviceCapabilities沒有爲這兩個設備做的伎倆,因爲我可以指定我需要front-facing-camera爲IPhone/iPod,但將排除在iPad 1

+0

爲什麼你絕對需要該設備配備視網膜顯示器? – 2011-06-06 15:55:19

+0

在非視網膜顯示器上它看起來不夠好。這是一款遊戲,即使我們因此而失去一些買家,我們也不想提供次優體驗。 – elibud 2011-06-06 15:56:31

+0

我不確定這是可能的;因爲您知道4.0.x +可用於3GS/4/Pad等,雖然有代碼可以檢測視網膜顯示是否可用,但在上傳到iTunes時該選項不存在。我認爲現在是不行的。 – Luke 2011-06-06 18:55:28

回答

0

這不能做。 UIRequiredDeviceCapabilities應該用來限制你的應用程序/遊戲真正需要或排除的功能,它並不意味着僅僅因爲開發者不想支持它們而用於限制某些設備。所以基本上你應該始終設計,記住當前正在更新到最後一個操作系統的所有設備。

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

這樣做有幾個問題這個。一種是,一旦蘋果發佈新設備,這將是過時的,將不包括較新的設備;而且,這不會阻止其他設備的用戶下載它。我想你可以加載一個只顯示「僅適用於......」的屏幕?只是一個想法。

+0

感謝這一點,但我們真正想避免的是用戶下載應用程序。 – elibud 2011-06-07 20:19:54

+0

是的,我想通了。令人討厭的是這可能是你唯一的選擇。你總是可以在開始時產生一個啓動畫面,說:「優化視網膜顯示」;) – 2011-06-07 21:09:32

+0

:)我們正在修復它的3GS,它並沒有預期的那麼難,但它肯定不是我們想要的方式。 – elibud 2011-06-07 21:20:53

相關問題