Что означает предупреждение "Mapping architecture arm64 to x86_64"?

После миграции моей рамки на Xcode 10 beta (10L176w) я начал получать предупреждения, например:

Сопоставление архитектуры arm64 с x86_64. Убедитесь, что эта конфигурация для целевых архитектур и правильных архитектур настроена правильно для платформы iOS Simulator.

... а также:

Сопоставление архитектуры armv7 с i386. Убедитесь, что эта конфигурация для целевых архитектур и правильных архитектур настроена правильно для платформы iOS Simulator.

Несмотря на эти предупреждения, сборка и модульные тесты проходят успешно. Я использую Swift 4.2.

И все же, о чем эти предупреждения?

Ответы

Ответ 1

Перейдите в раздел "Настройки сборки" и выполните действия, показанные ниже.

enter image description here

Ответ 2

Я смог заставить замолчать эти предупреждения, изменив настройку Valid Architectures на $(ARCHS_STANDARD) которая также соответствует настройке моей архитектуры.

Как ни странно, это отображалось как armv7 arm64 (по сравнению с настройкой по умолчанию armv7 armv7s arm64), но установка этого значения вручную все равно вызывала предупреждения. Не уверен, что это значит, но я не заметил никаких проблем в моем тестировании.

Ответ 3

Вероятно, вы установили параметр сборки VALID_ARCHS ("Valid Architectures"), переопределенный как для цели, так и для ее проекта. Это параметр сборки, который должен автоматически получать его значение в зависимости от того, для какого места назначения вы создаете. Когда вы выясните, откуда это переопределение (параметр сборки будет выделен жирным шрифтом при переопределении), выберите его и нажмите клавишу удаления, чтобы восстановить значение по умолчанию.

Ответ 4

Как и другие ответы, я смог удалить предупреждение, изменив $(VALID_ARCHS) (Действительные архитектуры) на $(ARCHS_STANDARD). Оттуда я очистил все данные Derived и перезапустил Xcode 10.0. Это заставило предупреждение уйти полностью. При удалении всего из допустимых архитектур просто появилось другое предупреждение ("Не найдено правильных архитектур").

Ответ 5

Для ЦЕЛИ, которая сообщает о предупреждениях, измените настройку "Действительная архитектура" на:

$(VALID_ARCHS)
x86_64

enter image description here

Ответ 6

Я видел это предупреждение, когда пытался скомпилировать код для iOS и Mac OS. Я смог обойти это, сначала выполнив то, что Хасан Талеб предложил в своем ответе: расчистить архитектуры так, чтобы там были только действительные архитектуры iPhone. И наконец, чтобы сохранить возможность сборки для Mac OS, наведите указатель мыши на Действительные архитектуры, чтобы появилась кнопка "плюс". Щелкните по нему, а затем при необходимости вы сможете добавить отдельные настройки для разных платформ, включая разные архитектуры ЦП. Для macOS SDK я могу установить допустимые значения архитектуры x86_64, если захочу. For macOS SDK, I can set my Valid Architectures to just x86_64 if I want

Ответ 7

Решение проще: в Valid Architectures просто замените arm64 на x86_64.

В моем проекте была похожая проблема и следующие три предупреждения: Had similar issue and the following warning in my project

Мои действительные архитектуры изначально были My **Valid Archtectures** originally were

Замена:

  • armv7 с i386,
  • armv7s с i386,
  • и arm64 с x86_64

(как упомянуто в Предупреждениях) было моим решением. Результат в настройке Действительной архитектуры был:

Replacing armv7 with i386, armv7s with i386, and, arm64 with x86_64 as mentioned in the Warnings was my solution

После замены мои три предупреждения выше исчезли.

Более подробную информацию об Архитектурах можно найти здесь: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

Я думаю, что формулировка этого предупреждения в XCode немного путаница.

Надеюсь это поможет

Ответ 8

если ваши [настройки сборки] являются armv7 armv7s arm64, удалите armv7s. предупреждение будет отменено.