2013-09-23 19 views
14

Piszę aplikację, która wymaga mikroukładu M7 Motion w iPhone 5S. Ponieważ ten układ nie znajduje się w żadnym innym iPhonie, aplikacja będzie działać poprawnie tylko na iPhonie 5S.Czy mogę potrzebować iPhone'a 5S do mojej aplikacji?

Czy istnieje sposób na żądanie, aby użytkownik miał iPhone'a 5S przed pobraniem aplikacji? Coś w stylu, w jaki możesz zrobić aplikację na iPada?

Szukam sposobu na wybranie wymagania sprzętowego iPhone'a. Nie wymaga wersji na system iOS.

Odpowiedz

10

Rozmawiałem z firmą Apple, a prawidłowa odpowiedź brzmi NIE. Nie można określić wymaganymi funkcjami urządzenia lub w inny sposób, że iPhone 5S jest wymagany dla określonej aplikacji. Możesz jednak jasno określić w opisie swojej aplikacji, że wymaga on procesora ruchu iPhone 5S/M7 i Apple go zaakceptuje.

+0

Co powiesz na użycie kluczy 'metal' lub' opengles-3', aby wymagać współprocesora ruchu? Wydaje 'metal' jest dostępna tylko w post-iPhone 5 –

+0

W tym czasie pisał to, nie jestem pewien, metalu lub OpenGLES-3 istniał (może zrobili?), ale to brzmi jak coś warte wypróbowania. Czy możesz spróbować i złożyć raport, jeśli to działa? Od kiedy pisał ten, mam chciał również, aby uniemożliwić użytkownikom, którzy nie mają procesor barometru (pre iPhone 6) pobieranie moją aplikację, ale znów skończyło się tylko to, co powiedział mi jabłko, które było jednoznacznie stwierdzić, w aplikacji opis, jaka aplikacja jest wymagana, i zakoduj komunikat o błędzie i zostaw to. – Jackson

+0

Tak, jeśli spróbuję i nie pójdę tą samą trasą, co ty, na pewno tutaj zgłoś się! –

1

Powinieneś dodać klucz "Wymagane funkcje urządzenia" - UIRequiredDeviceCapabilities do głównego pliku plist twojej aplikacji. Po dodaniu tego klucza możesz określić, jakie są wymagania aplikacji.

Tutaj można znaleźć wartości dla tego klucza: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3

+1

To wszystko dobrze, z wyjątkiem tego, że nie ma tam nic, co mogłoby odróżnić iPhone'a 5S od iPhone'a 5. Nie ma możliwości wymagać armv8 (64-bitowego układu) lub wymagać nowego układu M7. – Jackson

+2

metal i/lub opengles-3, jako wymagana zdolność urządzenia, odróżni 5S od 5. – hotpaw2

2

Normalnie byś zrobił coś takiego, dodając klucz do aplikacji Info.plist UIRequiredDeviceCapabilities i określając wartość odpowiadającą funkcji sprzętu potrzebujesz. Jednak spośród możliwych wartości wymienionych here nie ma wartości dla współprocesora ruchu. Apple może nadal je dodawać, ale do tego czasu być może wymyślimy kombinację tych wartości, które są unikalne dla iPhone'a 5S i określają to.

+0

Interesujące jest to, że próbowałem dodać arm64 do wymaganej tablicy możliwości urządzenia w plist i nie zbuduje i nie uruchomi mojego iPhone'a 5S ponieważ mówi, że mój plik plist "określa wymagania dotyczące możliwości urządzenia, które nie są spełnione przez iPhone'a". Dziwne. Czy iPhone 5S nie jest arm64? – Jackson

+0

Dostaję również to ostrzeżenie w Xcode: ostrzeżenie: wszystkie aplikacje powinny zawierać architekturę armv7 (bieżący ARCHS = "arm64"). Sądzę więc, że nie mogę zbudować tylko dla arm64. – Jackson

+0

Cóż, technicznie 5S ma * 64-bitowy procesor *, który jest oparty na architekturze * [ARMv8] (http://www.arm.com/products/processors/armv8-architecture.php) *. Sugerowałoby to, że chcesz wpisać 'armv8' na liście właściwości, ale tylko wartości" armv6 "i" armv7 "są wymienione jako możliwe wartości w dokumentacji Apple. ('arm64' nie jest możliwą wartością dla tego klucza, prawdopodobnie dlatego nie byłby uruchamiany z tym kluczem.) Warto sprawdzić, czy' armv8' działa. Byłoby to zgodne z wzorcem i może się zdarzyć, że Apple po prostu nie zdążyło jeszcze zaktualizować tej listy. –