2013-09-23 99 views
14

我正在編寫一個需要iPhone 5S中的M7 Motion協處理器芯片的應用程序。由於該芯片不在任何其他iPhone中,該應用程序將只能在iPhone 5S上正常運行。我可以爲我的應用程序需要iPhone 5S嗎?

在下載我的應用程序之前,有什麼方法可以要求用戶使用iPhone 5S嗎?有點像你如何可以使一個應用程序的iPad具體?

我正在尋找一種方法來選擇iPhone的硬件要求。不是iOS版本的要求。

回答

10

我和蘋果談過了,正確的答案是在這個時候沒有。您無法通過必需的設備功能或以其他方式指定特定應用需要iPhone 5S。但是,您可以在應用的描述中清楚地說明它需要iPhone 5S/M7運動協處理器,Apple會接受它。

+0

如何使用'metal'或'opengles-3'鍵來請求運動協處理器?似乎'金屬'只在後iPhone 5 –

+0

當我發佈這個,我不知道金屬或opengles-3存在(也許他們做?),但它聽起來像是值得嘗試的東西。你可以嘗試並報告,如果它的工作? 由於我發佈了這個,我也希望阻止沒有氣壓計芯片(iPhone 6之前)的用戶下載我的應用程序,但我最終只做了蘋果告訴我的,應該在應用程序中明確指出描述應用程序需要什麼,並編寫錯誤消息並將其留在那裏。 – Jackson

+0

是的,如果我最終嘗試它而不是像你一樣走,我肯定會在這裏報告! –

1

您應該將「必需設備功能」 - UIRequiredDeviceCapabilities鍵添加到應用程序的主plist中。 通過添加此密鑰,您可以定義什麼是應用程序要求。

在這裏,你可以找到這個鍵的值:https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3

+1

除了沒有什麼區別iPhone 5S與iPhone 5之外,這一切都很好。沒有能力要求armv8(64位芯片)或需要新的M7芯片。 – Jackson

+2

作爲必需的設備功能,金屬和/或opengles-3將區分5S和5. – hotpaw2

2

通常你會通過增加UIRequiredDeviceCapabilities關鍵看你的應用程序的Info.plist並指定對應於您所需要的硬件功能的值做這樣的事情。但是,在列出的可能值here之中,似乎沒有運動協處理器的值。蘋果公司可能還會增加一個,但在那之前,或許你可以想出iPhone 5S獨有的那些價值組合,並指定它們。

+0

有趣的是,我嘗試將arm64添加到plist中所需的設備功能數組中,並且它不會在我的iPhone 5S上生成並運行因爲它表示我的應用程序的plist「指定了設備功能要求,而這些要求不符合iPhone的要求」。奇怪的。 iPhone 5S不是arm64嗎? – Jackson

+0

另外我在Xcode中得到這個警告:警告:所有應用程序都應該包含armv7架構(當前ARCHS =「arm64」)。 所以我想我不能只爲arm64構建。 – Jackson

+0

從技術上講,5S有* 64位處理器*,它基於* [ARMv8架構](http://www.arm.com/products/processors/armv8-architecture.php)*。這表明你想在你的屬性列表中指定'armv8',但只有'armv6'和'armv7'在Apple文檔中被列爲可能的值。 ('arm64'不是這個鍵的可能值,這可能是爲什麼它不會運行這個。)值得檢查一下,看看'armv8'是否工作。這將遵循這種模式,可能蘋果公司尚未開始更新該列表。 –

相關問題