有沒有辦法從構建中排除非視網膜設備,並且是否允許在提交過程中使用?我不是針對iPad或iPad mini。我認爲3GS用戶很少,設備無法處理任何過於先進的事情。iOS中僅有Retina設備版本
我不想將非視網膜作品包含在包中。
有沒有辦法從構建中排除非視網膜設備,並且是否允許在提交過程中使用?我不是針對iPad或iPad mini。我認爲3GS用戶很少,設備無法處理任何過於先進的事情。iOS中僅有Retina設備版本
我不想將非視網膜作品包含在包中。
您不應該排除非視網膜設備,因爲iPad mini不是retine。也沒有構建選項來排除非視網膜設備。
因此,非視網膜設備將運行使用視網膜圖像和使用更多的內存,這可能會使他們用完內存。 如果您確實設法排除iPhone 3GS,則即使您的應用程序僅支持iPhone,它仍應在任何iPad上運行,但您的應用程序仍需要在非視網膜iPad mini上運行。
您不必包含非視網膜圖稿。只使用非@ 2x的命名圖像;這會導致在非視網膜設備上表現不佳,因爲它們也比較老,並且硬件較慢(不包括iPad mini)。您不能排除基於硬件的設備(除了可能通過設置最低的iOS版本)。
不,不幸的是,這是不可能的。
你可以看看:Information Property List Key Reference你可以在這裏看到你可以配置你的應用程序需要運行的東西。
也許你可以在會話看一看:UIRequiredDeviceCapabilities,試圖將其調整到僅在有能力的特定組合的設備上運行,但就像你可以在頁面上看到,這是不可能的配置它基於設備顯示。
- 你可以做只支持設備更強大的硬件什麼
一個例子是定義你需要使用只有最新的設備有像硬件:面向前方的攝像頭。 (iPad 2擁有它,而不是視網膜,只是您可以利用的功能的一個例子)。
也許在您的應用程序中可以檢查比例尺,並採取兩種不同的方法。
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&& [[UIScreen mainScreen] scale] == 2.0) {
[self runTheFeature];
} else {
[self alertYourDeviceSucks];
}
在過去,你可以使用的方法就像this blog post描述的。閱讀後,請參閱this updated device capabilities matrix。
本質上,您選擇一組UIRequiredDeviceCapabilities鍵,將一組受支持設備限制爲視網膜顯示的設備。
不幸的是,從矩陣中可以看出,iPad mini在視網膜顯示方面無效(沒有Retina顯示屏,但它不缺少任何其他功能,可以用來排除它其他視網膜顯示設備)。
編輯:根據您的編輯,由於您不是爲iPad/iPad mini打造的,您可以使用上述方法並要求使用前置攝像頭。請參閱this similar Q&A。
你不應該排除非視網膜設備,作爲最後回答說,但如果你覺得你有,那麼你可以這樣做:
1在應用程序委託檢查設備是否有Retina顯示屏前加上主視圖控制器到一個UIWindow
if(IS_RETINA)
{
[self initTheMainViewCotnroller];
}
else
{
// show alert, warning or anything
[self showErrorOrWarningMessage];
}
注:IS_RETINA - 是一個宏觀的
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
對用戶的任何消極情緒都不好。我想知道是否可以在構建級別或者甚至在構建到設備上之前。 – jarryd
這是一個非常不好的理由,不支持非視網膜設備。就您的編程而言,所有iPad觸摸輸入都在_points_中(即,視網膜和非視網膜設備均使用768x1024點的座標),而不是像素。爲了使視網膜圖形正確顯示,[您必須設置內容比例因子](http://stackoverflow.com/q/9763368/111307)。 – bobobobo
??我想你誤解了我的問題。 – jarryd
這聽起來像你問如何防止非視網膜設備,甚至使用你的應用程序。 – bobobobo