Представление приложения 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. Установите значение НЕТ.
Меня устраивает.