2013-09-23 6 views
14

Ich schreibe eine App, die den M7 Motion Co-Prozessor-Chip im iPhone 5S erfordert. Da dieser Chip in keinem anderen iPhone vorhanden ist, funktioniert die App nur auf einem iPhone 5S.Kann ich ein iPhone 5S für meine App anfordern?

Gibt es eine Möglichkeit zu verlangen, dass ein Benutzer ein iPhone 5S vor dem Herunterladen meiner App hat? So ähnlich wie man eine App iPad spezifisch machen kann?

Ich bin auf der Suche nach einer Möglichkeit, die iPhone-Hardware-Anforderung auszuwählen. Nicht die iOS-Version erforderlich.

Antwort

10

Ich sprach mit Apple und die richtige Antwort ist zu dieser Zeit NEIN. Sie können nicht über Erforderliche Gerätefunktionen oder auf andere Weise festlegen, dass ein iPhone 5S für eine bestimmte App erforderlich ist. Sie können jedoch klar in der Beschreibung Ihrer App angeben, dass es den iPhone 5S/M7 Motion Co-Prozessor benötigt und Apple dies akzeptiert.

+0

Wie wäre es mit den 'metal' oder' opengles-3' Tasten für die Anforderung der Motion Co-Prozessor? scheint 'metal' ist nur verfügbar auf Post-iPhone 5 –

+0

Zu dem Zeitpunkt, als ich das gepostet habe, bin ich nicht sicher, Metall oder OpenGL-3 existierten (vielleicht taten sie?), aber es klingt wie etwas, das einen Versuch wert ist. Können Sie es versuchen und melden, wenn es funktioniert? Da ich dies gepostet habe, wollte ich auch verhindern, dass Benutzer, die keinen Barometer-Chip (vor iPhone 6) hatten, meine App herunterladen, aber ich endete wieder nur damit, was Apple mir sagte, was klar in der App zu sagen war Beschreibung was die App benötigt und eine Fehlermeldung codiere und belasse es dabei. – Jackson

+0

Ja, wenn ich es am Ende versuche und nicht den gleichen Weg wie du gehe, werde ich mich definitiv hier melden! –

1

Sie sollten den Schlüssel "Erforderliche Gerätefunktionen" - UIRequiredDeviceCapabilities zur Hauptanwendung Ihrer App hinzufügen. Durch Hinzufügen dieses Schlüssels können Sie festlegen, welche App-Anforderungen gelten.

Hier finden Sie die Werte für diesen Schlüssel zur Verfügung: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3

+1

Das ist alles gut, außer es gibt nichts darin, das iPhone 5S vom iPhone 5 zu unterscheiden. Es gibt keine Fähigkeit, armv8 (der 64-Bit-Chip) zu verlangen oder den neuen M7-Chip zu verlangen. – Jackson

+2

metal und/oder opengles-3, als eine erforderliche Geräte-Fähigkeit, wird eine 5S von einer 5 unterscheiden. – hotpaw2

2

Normalerweise würden Sie, indem Sie die UIRequiredDeviceCapabilities Schlüssel zu Ihrer App info.plist so etwas tun und einen Wert, der angibt, um die Hardware-Funktion entspricht, die Sie benötigen. Unter den möglichen Werten, die unter here aufgelistet sind, scheint jedoch kein Wert für den Bewegungskooprozessor zu sein. Apple fügt vielleicht noch einen hinzu, aber bis dahin könnten Sie vielleicht eine Kombination dieser Werte finden, die für das iPhone 5S einzigartig ist und das spezifizieren.

+0

Interessanterweise habe ich versucht, arm64 zu den erforderlichen Gerätefunktionen Array in der PLIST hinzufügen und es wird nicht auf meinem iPhone 5S bauen und laufen weil es besagt, dass die App meiner App "Gerätefähigkeitsanforderungen spezifiziert, die vom iPhone nicht erfüllt werden". Seltsam. Ist das iPhone 5S kein arm64? – Jackson

+0

Auch ich bekomme diese Warnung in Xcode: Warnung: Alle Apps sollten eine Armv7-Architektur (aktuelle ARCHS = "Arm64") enthalten. Also ich denke, ich kann nicht nur für arm64 bauen. – Jackson

+0

Technisch gesehen hat der 5S einen * 64-Bit-Prozessor *, der auf der * [ARMv8-Architektur] (http://www.arm.com/products/processors/armv8-architecture.php) * basiert. Dies würde bedeuten, dass Sie "armv8" in Ihrer Property-Liste angeben möchten, aber nur "armv6" und "armv7" werden als mögliche Werte in Apples Dokumentation aufgeführt. ('arm64' ist kein möglicher Wert für diesen Schlüssel, wahrscheinlich deshalb würde er damit nicht funktionieren.) Es lohnt sich, nur zu überprüfen, ob' armv8' funktioniert. Das würde dem Muster folgen und es könnte sein, dass Apple diese Liste noch nicht aktualisiert hat. –