Обновлен до XCode 4.5 для armv7, но XCode 4.5 удаляет armv6, но не может ограничивать требования

Я обновился до XCode 4.5, чтобы добавить поддержку арки armv7s, однако я обнаружил, что вы не можете создавать двоичные файлы armv6 с XCode 4.5.

Я уже поддерживаю armv6, но желание поддерживать armv7s с XCode 4.5, похоже, вынуждает меня противоречить пункту: «Вам разрешено расширять только требования к вашему устройству. Отправка обновления вашего двоичного файла для ограничения требований к вашему устройству не разрешено."

Кто-нибудь знает, можно ли отказаться от armv6 или есть обходной путь?

Вероятно, также стоит упомянуть, что я создаю фреймворк (библиотеку), а не приложение. Поэтому я хочу поддержать разработчиков приложений.


person Christian    schedule 20.09.2012    source источник
comment
Этот вопрос отображается на первой странице в Google, поэтому я решил указать другим пользователям на этот ответ: stackoverflow.com/a/ 12678077/206520   -  person mmilo    schedule 09.10.2012


Ответы (2)


armv6 — это архитектура ЦП оригинального iPhone и iPhone 3G. Увидев, что оба больше не поддерживаются для двух поколений iOS и более, можно безопасно удалить его из поддерживаемых целей. Фактически, таргетинг на armv7 должен создавать более оптимизированные двоичные файлы для текущих устройств.

Учитывая то, как вы разрабатываете библиотеку, это наложит ограничения на пользователей. Вы либо ограничите пользователей armv6, либо пользователей armv7s — выбор кажется мне очевидным, но, чтобы быть в безопасности, я бы рекомендовал разветвить вашу версию armv7 и выше как новый проект (возможно, «v2»), чтобы пользователи старой библиотеки могли продолжить использовать его безопасно, пока они не смогут обновить свои проекты. Оставьте оригинал без поддержки, чтобы стимулировать более быстрые обновления.

person Leo Natan    schedule 20.09.2012
comment
Почему этот комментарий был заминусован? Мы просто сделали это для нашего продукта. - person Leo Natan; 25.09.2012
comment
Я не думаю, что я проголосовал за это. Думаю, если мы скажем, что поддерживаем только iOS 4.3 и выше, мы можем удалить armv6. Машина сборки получит XCode 4.5 и будет собирать только armv7/armv7s/i386. Любой, кто хочет armv6, должен будет использовать старый выпуск, и если нам понадобится его поддержка, нам придется сохранить XCode 4.4 для ручного исправления старой библиотеки. Я бы предпочел не использовать новое имя (например, v2) для библиотеки, если я могу этого избежать. - person Christian; 26.09.2012
comment
Вы можете решить не поддерживать его и дать старому, неподдерживаемому lib устаревшее имя. - person Leo Natan; 26.09.2012

Перечитав ваш вопрос, я не понимаю, почему у вас возникли какие-либо проблемы. Вы строите фреймворк, поэтому это ограничение на вас не распространяется:

  • Пользователи, которые ранее использовали ваш фреймворк, версию с поддержкой Armv6, в любом случае не смогут обновлять свои приложения, если они не откажутся от Armv6.

  • Поскольку разработчики новых приложений будут вынуждены использовать XCode 4.5, они все равно откажутся от Armv6. Если они захотят использовать ваш фреймворк с новыми приложениями, они все равно не смогут поддерживать Armv6.

Так что мне, как разработчику фреймворка, кажется, что этот гайдлайн к вам вообще не относится.

Правка — Кроме того... Приложение Facebook было обновлено и теперь поддерживает только iOS 4.3, прекращена поддержка устройств Armv6. http://itunes.apple.com/us/app/facebook

person Nitzan Wilnai    schedule 25.09.2012
comment
Я думаю, вам нужны некоторые подтверждающие доказательства, чтобы показать, что вы можете ограничить требования к устройству. То, что вы говорите, кажется, противоречит следующей ссылке: developer.apple.com/library/ios/#documentation/ - person Christian; 26.09.2012
comment
Я предполагаю, что технически существующие пользователи библиотеки могут быть пользователями программы корпоративного разработчика и, таким образом, все еще могут разрабатывать и распространять двоичные файлы armv6. Однако шансы на это малы, и вы всегда можете просто дать им двоичный файл, созданный с помощью XCode 4.4. Другая вещь, которую я еще не пробовал, — это собрать двоичный файл armv6 с помощью компилятора XCode 4.4 и использовать lipo для его соединения с двоичным файлом, созданным с помощью iOS6 SDK. Я подозреваю, что Apple может отклонить такой двоичный файл с тройной архитектурой. - person pmdj; 26.09.2012