Пользователь
22 октября 2014 в 14:36

Разработка → Apple обязала разработчиков создавать 64-битные приложения

Вслед за публичным релизом iOS 8.1 в понедельник, 20 октября, Apple представила ряд других новшеств, среди которых есть и то, что напрямую касается разработчиков мобильных приложений под iOS.



В частности, компания изменила требования к выпускаемым приложениям, о чем вчера оповестила разработчиков через уведомления от Developer Center.

Основных новых требования два: с 1 февраля 2015 года все новые приложения и обновления уже опубликованных должны быть разработаны с использованием SDK iOS 8, включённого в интегрированную среду разработки ПО Xcode 6, и быть совместимыми с 64-битной архитектурой. В противном случае они будут отклонены.

Обязательное введение поддержки 64-разрядных систем связано с использованием Apple 64-битных процессоров А7 и А8 во всех своих новых устройствах, начиная с iPhone 5s и iPad Air, не говоря о представленных этой осенью iPhone 6 и 6 Plus, а также iPad mini 3 и iPad Air 2. Оба чипа дают новым моделям iPhone и iPad значительное увеличение производительности при меньших энергозатратах. Однако, в настоящее время на этих устройствах iOS приходится использовать дополнительные ресурсы для работы с 32-битными приложениями.



Apple не впервые переводит разработчиков на новое ПО принудительными мерами. Такое уже было в 2013 году, когда компания обязала девелоперов оптимизировать все новые приложения для iOS 7.

Стоит отметить, что требования касаются только впервые публикуемых в App Store приложений или обновленных версий. Старые программы по-прежнему могут оставаться 32-битными. Вероятно, что в перспективе на 64-битную архитектуру будут переведены все приложения, но решение этого вопроса займет, скорее всего, не один год.
Мишин Иван @BaHeK
карма
0,0
рейтинг 0,0

Похожие публикации

Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (56)

  • +16
    Правильно. Давно пора всё и всюду перевести на 64 бит, кроме legacy.
  • +1
    А как же планшеты и телефоны с 32битным процессором? Остаются без всяких новых программ?
    • –7
      wp7 way
    • +6
      У меня есть подруга, которой случайно достался самый первый iPad. Говорит, что на него сейчас практически ничего установить нельзя. Вероятно, такая судьба ждет все 32-битные устройства.
      • +1
        Вы не правы, на него все старые приложения поставить можно — из AppStore будут загружаться старые версии, ну а новые продукты — естественно не будут запускаться
        • +5
          Это только в том случае, если у вас iOS не ниже 5ой версии. Это я вам как обладатель iPod Touch 2g говорю.
          • +3
            как обладатель iPad 2 с iOS 5.1 могу сказать — этого всё равно не хватает.
            Выглядит так, будто поставить старую версию можно, если только это отдельно разрешает разработчик. И обычно это запрещают. :(
            • +3
              Вы сами выбрали старую ось. Второй айпад спокойно апгрейдится до 8.1, и тормозов не больше чем на пятерке. У меня самого второй и все ок.
              • +1
                У меня тоже iPad2. После апгрейда всё работает, но стало менее плавно — появились задержки в интерфейсе, которых раньше не было. Приложения чаще выгружаются при переключениях.

                Но в целом всё ещё комфортно.
              • +4
                iPad 2 жутко тормозит начиная с iOS 7.
                • +1
                  Переустановите «с нуля» — станет чуть быстрее работать.
              • –2
                А я думал, что это производитель выбирает с какой осью продавать девайс.
                • 0
                  Но он же не выбирает покупателей :-) Вы выбрали производителя/модель, а значит выбрали и ОС этого устройства.
              • +4
                Недавно вынужден был обновить на своем iPhone 4 операционку с 5.1 до 7 версии. Замедление интерфейса заметно невооруженным глазом, ну и расход батарейки стал значительно больше.
          • 0
            если разработчик не выключил возможность загрузки старой версии то загрузить можно на iPod Touch 2g под управлением iOS 4.2.1 — это я вам как владелец такого устройства говорю :)
            вот инструкция: sites.google.com/site/appleclubfhs/support/advice-and-articles/app-store-downloading-older-versions-of-apps-ios
            учтите что приложение должно быть куплено (хоть на компе) и только после этого его старую версию можно загрузить (если разработчик не заблокировал загрузку старой версии)

            Но вот например e-num — выключили возможность загрузки старых версий и имея iOS 4.2.1 загрузить нельзя.
            однако iBooks эпловский должен работать.
      • +2
        С выхода первого айпада прошло ровно 4.5 лет. Тем не менее многие игры под него будут работать. Я сам являюсь автором игры которой 4 года, и она обновляется регулярно (мы выпустили 60 обновлений).
        Да, мало чего можно установить на первый айпад, не поспоришь, но девайс то ведь ископаемый уже. Особенно учитывая что это была первая таблетка вообще. Главная его проблема — это то что у него внутри 256мб оперативки, пои большом экране. Это рекордно низкое соотношение экрана к памяти среди iOS девайсов. Вот картинка для демонстрации
        image

        Такое соотношение является реальной проблемой длря разработчиков игр. Да и вообще, 256 мб. это очень мало памяти.

        З.Ы. Посоветуйте подруге обновиться до последней версии, если она этого не следала. Жизнь станет получше.
        • +1
          Это Вы скажите разработчикам под x360 или ps3!
          • 0
            У меня есть опыт разработки под консоли. Там много аспектов сильно проще, ного тяжелее. Но да, проблемы с памятью очень похожы на проблемы с ранними iOS девайсами.
        • 0
          А есть полная версия картинки? А то я так никогда свой 3Gs не обновлю.
          • 0
            В смысле, полная? Это картинка которую я сделал, она полная, ей точно больше года. Исходников определенно нет. На картинке количество пикселей разделенное на память в мегабайтах.
            • –1
              На картинке количество пикселей разделенное на память в мегабайтах.

              Ещё надо разделить на толщину корпуса и умножить на среднюю температуру Земли в год выхода устройства.
              • 0
                Что это за бред? Картинка показывает сколько полноразмерных текстур влезет в память (во всех мобильных устройствах память shared). Учитывая присутствие немалогока footprint-а системы, в ipad 2 влезет почти в 3 раза больше ресурсов чем в iPad 1.
            • 0
              Полная в смысле с iPhone 4s/5/5s хотя бы. Ну раз нет, так нет.
              • 0
                Смысла нету 4s такой же как 4, у iPhone 5 — 1GB RAM, и разрешение почти такое же как и у 4, т.е. столбец почтив 2 раза выше будет. На момент рисования картинки 5S не было, но тоже смысла нету так как будет идентичен 5 и 5с. Вообще график показывает проблемы разработчика игр. Нам часто нужны полноэкранные текстуры, для pixel-perfect интерфейсов, скажем. С графика видно (да и с практики тоже) что проблемы есть только у iPad 1st Get (256мб и большой экран) и первый ретина айпод, в который эпл почему-то тоже забыа засунуть оперативы, и это единственное устройство с ретиной и 256мб памяти.

                Вообще эти проблемы уже мало релевантны, да и были они очень специфическими. Проект над которым я работал просто грузил все ресурсы в память сразу, и это было критично. Обычно такого не делают.
        • 0
          > Да и вообще, 256 мб. это очень мало памяти.
          Anybody who needs more than 64Mb/task — tough cookies. L.Torvalds
          • 0
            Дада, Торвальдс еще тот упорыш.
    • +12
      Вообще-то там собираются fat-binary, содержащие как 32-битную так и 64-битную версию одновременно. Что, кстати, упоминается в письме на английском.
      • +5
        В ожиревшем бинарнике всё хорошо, кроме его размера. Если исполняемая часть для одной платформы будет 3мб — бинарник будет уже 9мб (armv7, armv7-a, arm64). Да-да, я в курсе, что всё архивируется, но это вполне реальные цифры сжатого бинарника. А если взять в расчёт требуемые загрузочные картинки немалого разрешения, то стандартное приложение вырастает до 25-30 мегабайт без особых проблем. Это мелочи, но неприятно.
        В основном неприятно то, что это НЕ МОЙ выбор, а принуждение. Я бы и не против делать хорошее качество графических материалов, но, например, на андроиде я могу их скачать во время работы приложения, предварительно спросив желания пользователя. Или не спросив, как захочется. А сборка и публикация версий для разных архитектур без всяких там жирных бинарников легко автоматизируется. Если бы фруктовая компания сделала что-то подобное, было бы круто. Apple, я знаю, вы могёте, когда захотите. Но с каждым годом всё реже.
        • +2
          Согласен с вами.

          По хорошему должно быть так: AppStore детектит архитектуру устройства и закачивает только соответствующие компоненты. Это же должно касаться и картинок: не неретиновом устройстве @2x не нужны и наоборот. Также неплохо было бы качать только ту часть локализационных данных, которая используется устройством (с докачкой, если переключается локаль).
          • +1
            Думаю, с точки зрения Эпла это будет экономия на спичках.
            Ну и маркетинг нужно учитывать — иначе как ещё убедить клиентов купить новый айфон со 128 ГБ :)
        • +1
          Поправочка, будет уже только armv7 и arm64. Начиная с xcode 6 Apple убрала armv7s из $(ARCHS_STANDARD), тем самым сделала «большой подарок» для владельцев iphone 5, 5c и iPad 4
          • 0
            Как тогда программы собранные в последнем икскоде запускаются спокойно на 5 айфоне?
            • +1
              В режиме совместимости с armv7
              • 0
                В чем тогда «большой подарок»? все работает.
          • 0
            Поясните, пожалуйста, в чём именно проявляются проблемы с iPhone 5 и 5c. И что будет с iPad 3?
            • +1
              С iPad 3 — ничего, речь идет о iPad 4 и iPhone 5/5c. В 2 словах, ничего смертельного не будет, armv7s это расширеная Еплом версия armv7. По бинарнику — в основном это поддержка VFPv4, что на практике немного затормозит определённые приложения. К сожалению, нет под рукой бенчмарков по коду armv7/arvm7s на пятой айфоне.
          • +3
            Никто не требует использовать $(ARCHS_STANDARD), моё личное мнение — ножи должны быть наточены, а IDE — изучена, чтобы не ходить по подобным граблям.
            • 0
              Полностью согласен, но есть один нюанс — когда приходится использовать сторонние бинарные либы, например для показа рекламы.
        • 0
          Насёт графических ресурсов – а разве Apple не позволяет приложению скачивать контент и сохранять его? Например, Яндекс.Карты позволяют скачать кеш нужных городов. Пусть у вас в приложении будут текстуры низкого качества, а при запуске пользователю покажется кнопочка «скачать красивое (666 мб)»
    • 0
      Нет, будут бинарники собираться и с 32 и 64-х разрядным кодом.
    • +1
      У разработчиков есть возможность делать универсальную архитектуру 32 и 64 бит или только на 32 бит. Начиная с февраля можно будет делать только универсальные программы.
    • 0
      Вообще там написано, что должно быть две сборки внутри одного бинарника. Отсекать 32 бита никто небудет. Главное, чтоб дополнительно была x64. Точно так же, как это было у arm6 и arm7
  • 0
    В новости же ничего про обновления нету. Там речь о «new iOS apps».
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Фреймворк не поддерживает 64. И вряд ли будет поддерживать… Не очень удобно…
  • 0
    должны быть разработаны с использованием SDK iOS 8
    То есть, все новые и обновлённые приложения будут несовместимы с iOS 7? Не очень понял этот момент…
    • 0
      Нет, то с какой версией будет работать зависит от deployment target, а его с последним сдк можно установить даже на 6.0
      • 0
        Ага, тогда всё ок, спасибо.
      • 0
        небольшое уточнение — даже на 5.1.1 можно установить
      • 0
        xCode 6.1 (6A1052d) SDK iOS 8.1 собирает начиная с iOS 4.3 и до iOS 8.1
        Архитектуры: armv7, armv7s, arm64

        При выборе всех трёх архитектур бинарник разрастётся в 3 раза, как и задумано.
  • 0
    Я может глупость спрошу, но разве сейчас еще можно в Xcode скомпилить 32-битное приложение, я был уверен, что он сразу автоматом компилит оба варианта (32 и 64)?
    • 0
      Архитектуры, под которые будет собираться билд можно указать.
      По умолчанию стоит Standart arhitectures (которые сейчас подразумевают armv7, arm64. С выходом новых версий xCode может быть изменено), но можно убрать одну или обе и/или добавить armv7s.
  • 0
    Яндекс MapKit перевыпустит наконец?
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Обещано же. Хорошие парни не врут…

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.