it-swarm.com.ru

Что означает предупреждение "Отображение архитектуры arm64 на x86_64"?

После переноса моей платформы в бета-версию Xcode 10 (10L176w) я начал получать такие предупреждения:

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

... а также:

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

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

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

40
courteouselk

Перейдите в Build Settings и сделайте, как показано ниже

 enter image description here

46
Hassan Taleb

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

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

25
John Montgomery

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

15
Rick Ballard

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

$(VALID_ARCHS)
x86_64

 enter image description here

4
Quanhua Guan

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

3
jldailey

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

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

Мои Действительные Archtectures изначально были  My **Valid Archtectures** originally were

Замена:

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

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

 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 немного путаница.

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

0
CGN

Я видел это предупреждение, когда пытался скомпилировать код как для 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

0
joelliusp