Совместимость 64 бит iOS

Сегодня утром я получил электронное письмо от Apple, сказав следующее:

Уважаемый разработчик,

Как мы объявили в октябре, начиная с 1 февраля 2015 года, новые приложения для iOS представленный в App Store, должен содержать 64-битную поддержку и быть построен с SDK iOS 8. С 1 июня 2015 г. обновления приложений также понадобятся соблюдать те же требования. Чтобы включить 64-битный проект, мы рекомендуется использовать настройку по умолчанию для Xcode "Стандарт" архитектуры "для создания единого двоичного файла с 32-разрядными и 64-разрядными код.

Если у вас есть какие-либо вопросы, посетите Форумы разработчиков Apple.

С уважением, Техническая поддержка Apple Developer.

Теперь у меня есть вопрос, как вы гарантируете, что приложение iOS совместимо с 64-битной версией?

Мои настройки сборки выглядят так: Architectures

Цель моего развертывания - iOS 6.0.

Мне просто нужно подтвердить, что приложение совместимо с 64 бит, я все новичок в iOS и недавно взял на себя довольно большой проект, поэтому я бы предпочел спросить и быть на 100% уверенным.

Просто, чтобы сделать что-то более понятным, как вы гарантируете, что приложение iOS совместимо с 64-битной версией? Я знаю, что вам нужно установить определенные правила сборки, например, изображения, но я хочу знать, есть ли способ узнать, что ваше приложение iOS совместимо с 64 бит. 32-разрядные приложения для iOS могут работать на 64-битном оборудовании, поэтому я не верю, что проверяет, работает ли приложение iOS на устройстве.

Я считаю, что вы можете загрузить новую версию и посмотреть, получилось ли вы это сообщение: Но я надеялся на хороший вариант, не загружая новую сборку. image

Спасибо!

Ответ 1

С настройками у вас должно получиться arm64 и armv7 в вашем двоичном файле. Вы не получите armv7s, потому что хотя это действительная архитектура, она не включена в ARCHS_STANDARD, если вы строите на Xcode 6 (См. также).

Просто потому, что он работает на 64-битном устройстве, это не значит, что у него 64-разрядная поддержка. 64-разрядные устройства могут запускать 32-разрядные приложения.

Чтобы определить, содержит ли он блок arm64, вам нужно найти приложение. Перейдите в настройки Xcode и выберите тег Locations. Строка Derived Data сообщает вам, где файлы создаются.

XCode settings : Locations

Откройте терминал (Finder- > Applications- > Utilities- > Terminal) и перейдите в это место, используя команду cd. В моем случае мой проект хранится в ~/MyProject

$ cd ~/MyProject
$ cd build
$ find . -name MyTarget
./build/MyTarget
./build/MyTarget/Build/Products/Debug-iphoneos/MyTarget.app/CoreControl
./build/MyTarget/Build/Products/Debug-iphoneos/MyTarget.app.dSYM/Contents/Resources/DWARF/CoreControl

Теперь мы знаем, где хранится двоичный файл (это второй результат), мы можем проверить его, чтобы увидеть, какие архитектуры он содержит:

$ dwarfdump ./build/MyTarget/Build/Products/Debug-iphoneos/MyTarget.app/MyTarget
----------------------------------------------------------------------
 File: ./build/MyTarget/Build/Products/Debug-iphoneos/MyTarget.app/MyTarget (armv7)
----------------------------------------------------------------------
.debug_info contents:
< EMPTY >

В моем случае у меня есть только arm7, а не arm64.