2014-11-06 2 views
90

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

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

warning_xcode

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

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

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

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

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

+0

У нас тоже есть этот выпуск. :( – NAZIK

+0

Также со вчерашнего дня? –

+0

1) попробуйте очистить DerivedData для Xcode после его изменения; 2) может быть, вы используете старые внешние api, sdk, framework и т. Д. – TonyMkenu

ответ

103

Использование "Standard architectures", как это:

  • Архитектура: "Стандартные архитектуры" ARM7, arm64
  • Правильные Архитектуры: "arm64", ARMv7 ...
  • Сложение Активный Архитектура Только NO (специально ... если ваше подключенное устройство не совместимо с arm64)

так:

enter image description here

  • Кроме того, отсоединив iPhone'ов и Ipads от макинтош было известно, чтобы помочь, особенно если они являются 32-разрядные версии.
+2

Спасибо за ваш ответ, но, как указано в моем вопросе, я уже пробовал это, и проект не скомпилирован с этими настройками:/ –

+3

@ Тим, да, у меня тоже было «armv7 и arm64» в Architechtures. Тем не менее, отсутствует предупреждение о 64-битной поддержке при проверке приложения для подчинения. – NAZIK

+0

@NAZIK у вас есть arm64 в обеих строках (Архитектуры и Действительные Архитектуры)? У меня была такая же ошибка, и это было решение – TonyMkenu

37

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

Что я сделал:

  • Я пошел в проект (vs.Target) конфигурация
  • типизированных «arm64» в действительной Архитектуре (это автоматически отражается в мишенях и схемах

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

предупреждение проверки исчезло слишком!

enter image description here

+1

> не отражен в «Действительных архитектурах», даже если он показан как стандарт Это было для меня моментом. Спасибо! – Romain

+1

В случае, если это помогает другим, мне пришлось изменить как Project, так и Target, чтобы получить работу – djburdick

+0

@djburdick Спасибо. Это сработало для меня, когда ничего не случилось. –

66

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

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

+4

Шляпы выключены! : D вы спасли мое время –

+1

Большая помощь !! Сэкономил мне много времени на этом. Хороший совет для обновления старых приложений. – hangzhouharry

+1

Сделал это для меня тоже! –

0

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

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

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

+0

Вы действительно имеете в виду 5.1.1? 5.1 не является достаточно недавним? – Dirk

+0

Это было давно. Я не знаю или не помню логику этого. Просто делайте шаги, и что-то может вернуться в нужное место. Скрипт с архитектурой и всеми упомянутыми страницами. – user1122069

27

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

+0

Это сработало для меня .... –

5

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

Настройки Строительство:

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

Правильные Архитектуры : armv7 armv7s arm64

  1. Чистый и построить приложение с iPhone подключен
  2. Отключите iPhone и проверьте верхнюю панель, если в «IOS устройств»
  3. Архив
  4. Validate и отправить
+0

arm7 или armv7? –

+0

@ Timuçin. Извините за мой поздний ответ, вы правы: armv7 armv7s arm64. –

1

Я решил эту проблему, изменения,

архитектур: ARM7, arm64

Правильная архитектура: ARM7, arm64

Сложение активна только архитектура: Да

0

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

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

+1

Должен установить режим освобождения до – ZYiOS

3

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

enter image description here

+0

Менее 2% людей используют iOS 6 или меньше. https://developer.apple.com/support/appstore/ –

0

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

«Строить Активный Архитектура только - НЕТ (специально ... если подключенное устройство не совместимо arm64)»

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

1

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

P.S. : xcode version : 7.2

+1

Yup. только после этого и только после подключения устройства обнаружил фактический журнал ошибок. Затем появились некоторые строки кода, которые устарели и требуют (красные) исправления и некоторые проблемы с RSA lib. – maxweber

0

Установите флажок «Создать активную архитектуру». Установите значение НЕТ. Это работает для меня.

Смежные вопросы