Представление приложения iOS: отсутствует 64-разрядная поддержка

Я отправил приложение вчера для просмотра, без проблем. Затем я понял, что у меня было очень небольшое исправление (изменение максимального уровня масштабирования карты с 19 до 18, ничего больше), поэтому я удалил двоичный файл из iTunes Connect и попытался повторно отправить.

Теперь у меня есть это предупреждение:

warning_xcode

Я не понимаю, почему, поскольку мои архитектуры:

  • архитектуры: armv7
  • допустимые архитектуры: armv6, armv7, armv7s, arm64

Приложение отлично работает в симуляторе. Если я попытаюсь использовать стандартные архитектуры (armv7, arm64), как рекомендовано в предупреждении, приложение не будет строить, и я получаю:

  • Undefined символы для архитектуры x86_64
  • ld: символы (символы), не найденные для архитектуры x86_64

Я использую lib route-me, и я устанавливаю те же настройки архитектуры.

Ответ 1

Используйте "Standard architectures" следующим образом:

  • Архитектура: "Стандартные архитектуры" arm7, arm64
  • Допустимые архитектуры: " arm64", armv7...
  • Только встроенная активная архитектура - НЕТ (особенно... если подключенное устройство не совместимо с arm64)

вот так:

enter image description here

  • Кроме того, известно, что отключить iphones и ipads от mac, особенно если это 32-разрядные версии.

Ответ 2

После подтверждения правильной архитектуры убедитесь, что ваше устройство НЕ подключено к вашему компьютеру, когда ARCHIVING окончательной сборки отправляется в App Store.

Причина появления этого предупреждения заключается в том, что подключенное УСТРОЙСТВО, возможно, не совместимо с arm64.

Ответ 3

Как писал Тони, важно иметь в обеих строках эти настройки. Поскольку мой (и, очевидно, ваш) проект был создан еще до того, как arm64 был добавлен к стандарту, он не отражается в "Valid Architectures", даже если он показан как стандартный.

Что я сделал:

  • Я пошел в конфигурацию Project (vs. Target)
  • Введенный "arm64" в Действительных Архитектурах (он автоматически отражается в целям и схемах

После очистки/сборки я даже получаю некоторые предупреждения о неправильном преобразовании float в CGFloat и т.д., поэтому настройки явно применяются.

Предупреждение о валидации также исчезло!

enter image description here

Ответ 4

Отключите свое физическое устройство от Mac. В списке устройств XCode выберите устройство iOS и снова создайте архив. Это сработало для меня.

Ответ 5

Сегодня я решаю эту проблему со следующими шагами:

Настройки здания:

Архитектуры: Стандартные архитектуры (arm7, arm64) - $(ARCH_STANDARD)

Действительные архитектуры: armv7 armv7s arm64

  • Очистите и создайте приложение с подключенным iPhone.
  • Отключите iPhone и проверьте верхнюю панель, если он находится в "устройстве iOS".
  • Архив
  • Подтвердить и отправить

Ответ 6

Просто создайте новый проект с использованием последней версии xCode и найдите настройки сборки. Новый проект, созданный с использованием последней версии, по умолчанию поддерживает 64.

enter image description here

Ответ 7

Я решил проблему, изменив

Архитектуры: arm7, arm64

Действительная архитектура: arm7, arm64

Только встроенная архитектура: Да

Ответ 8

Хорошо, это было безумие. Я пробовал каждый один ответ. Но он работал только тогда, когда я разместил arm64 до armv7 и armv7s в допустимых архитектурах.

P.S.: xcode version : 7.2

Ответ 9

Измените цель разработки iOS как минимум на 5.1.1 или, альтернативно, удалите стандартную настройку архитектур и повторно примените ее. Возможно, вы видели предупреждение о том, что arm64 не совместим с вашей целью сборки. На обзорной странице проверьте настройки сборки и целевые параметры развертывания. В моем случае цель была 6.0, но проект был 5.0.

Кроме того, отметьте "Действительные архитектуры" как в вашей цели, так и в вашем проекте. У меня были правильные настройки в проекте, но не на цель. После этого он работал у меня.

Переключение между проектом/целью на обзорной странице в левом верхнем углу окна.

Ответ 10

Я отправил успех по конфигурации как изображение: enter image description here

(архивировано с реальным устройством)

Ответ 11

Избавилось от каждого предупреждения. Проходил через все снова и снова. Нашли ответ на одно слово здесь.

"Только встроенная активная архитектура - НЕТ (особенно... если ваше подключенное устройство не совместимо с arm64)"

Мой iPad не 64 бит. Поместите НЕТ для Build Active Architecture, и мое подчинение работает!

Ответ 12

Пожалуйста, выберите опцию Build Active Architecture. Установите значение НЕТ. Меня устраивает.