2012-09-20 11 views
7

Zaktualizowałem XCode 4.5, aby dodać obsługę archv dla armv7s, jednak odkryłem, że nie można wygenerować binariów armv6 z XCode 4.5.Uaktualniono do XCode 4.5 dla armv7, ale XCode 4.5 usuwa armv6, ale nie może ograniczać wymagań.

Już obsługuję armv6, ale, chcąc wspierać armv7 z XCode 4.5, wydaje mi się, że zmuszam mnie do sprzeczności z klauzulą: "Możesz rozszerzać tylko swoje wymagania sprzętowe. Przesyłanie aktualizacji do pliku binarnego w celu ograniczenia wymagań urządzenia jest niedozwolone "

Czy ktoś wie, czy możemy upuścić armv6, czy istnieje obejście?

Warto również wspomnieć, że buduję framework (bibliotekę), a nie aplikację. Dlatego chcę wspierać twórców aplikacji.

+1

To pytanie pojawia się na pierwszej stronie w Google, więc pomyślałem, że punkt innych użytkowników do tej odpowiedzi: http://stackoverflow.com/a/12678077/206520 – mmilo

Odpowiedz

2

armv6 to architektura procesora oryginalnego telefonu iPhone i telefonu iPhone 3G. Widząc, jak oba nie są już obsługiwane przez dwie generacje iOS i więcej, można bezpiecznie usunąć je z obsługiwanych celów. W rzeczywistości kierowanie na armv7 powinno produkować bardziej zoptymalizowane pliki binarne dla obecnych urządzeń.

Zobacz, jak rozwijasz bibliotekę, spowoduje to nałożenie ograniczeń na użytkowników. Będziesz albo ograniczał użytkowników armv6, albo armv7s - wybór wydaje mi się oczywisty, ale dla bezpieczeństwa, polecam rozgałęzienie twojej armv7 i wersji up to jako nowego projektu (może "v2"), więc użytkownicy starej biblioteki mogą kontynuować używać go bezpiecznie, dopóki nie będą w stanie ulepszyć swoich projektów. Zachowaj oryginał nieobsługiwany, aby zachęcać do szybszych aktualizacji.

+0

Dlaczego ten komentarz downvoted? Właśnie zrobiliśmy to dla naszego produktu. –

+0

Nie sądzę, żebym to przegłosował. Myślę, że jeśli powiemy, że obsługujemy tylko iOS 4.3 i nowsze, możemy usunąć armv6. Maszyna budująca otrzyma XCode 4.5 i zbuduje tylko armv7/armv7s/i386. Każdy, kto chce, aby armv6 używał starego wydania i jeśli będziemy musieli go wspierać, będziemy musieli zachować kod XCode 4.4, aby ręcznie wkleić starą bibliotekę. Wolałbym nie używać nowej nazwy (np. "V2") dla biblioteki, jeśli mogę tego uniknąć. – Christian

+0

Możesz zdecydować, aby go nie obsługiwać, i nadać starym, nieobsługiwanym lib nazwę "starszego". –

0

Po ponownym przeczytaniu twojego pytania, jestem zdezorientowany, dlaczego masz jakiś problem. Budujesz ramy, więc ograniczenie to nie ma zastosowania do ciebie:

  • Użytkownicy, którzy wcześniej używanych swoją strukturę, wersję, która obsługiwana Armv6, nie będą mogli aktualizować swoje aplikacje tak czy inaczej chyba zrzucą Armv6.

  • Ponieważ nowi deweloperzy aplikacji będą zmuszeni do korzystania z XCode 4.5, wszyscy będą musieli zrzucić Armv6. Jeśli chcą korzystać z twoich frameworków z nowymi aplikacjami, to i tak nie będą w stanie obsługiwać Armv6.

Wydaje mi się więc, jako programista, że ​​ta wytyczna w ogóle nie dotyczy Ciebie.

Edytuj - Również ... Aplikacja Facebook została zaktualizowana do obsługi tylko iOS 4.3, rezygnując z pomocy dla urządzeń Armv6. http://itunes.apple.com/us/app/facebook/id284882215?mt=8

+0

Myślę, że potrzebujesz pewnych dowodów potwierdzających, że możesz ograniczyć wymagania dotyczące urządzeń. To, co mówisz, wydaje się przeczyć poniższemu linkowi: https://developer.apple.pl/library/ios/# documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/B_DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html – Christian

+0

Zmieniono moją odpowiedź. –

+0

Podejrzewam, że technicznie istniejący użytkownicy biblioteki mogą być użytkownikami programu dla programistów w firmie, a zatem nadal mogą tworzyć i dystrybuować pliki binarne Armv6. Szanse na to są jednak małe i zawsze możesz po prostu dać im binaria zbudowane z XCode 4.4. Inną rzeczą, której jeszcze nie próbowałem, jest zbudowanie pliku binarnego armv6 z kompilatorem XCode 4.4 i użycie 'lipo' do połączenia go z binariami zbudowanymi z SDK iOS6. Podejrzewam jednak, że Apple może odrzucić taki binarny potrójny arch. – pmdj

Powiązane problemy