Предварительный просмотр SwiftUI не работает при использовании модуля Firebase/Analytics

Похоже, что после обновления Xcode 12 до бета 5 превью SwiftUI больше не работают при использовании модуля Firebase/Analytics. Предварительные просмотры не работают с ошибкой:

linker command failed with exit code 1 (use -v to see invocation)

----------------------------------------

SchemeBuildError: Failed to build the scheme "Boo"

linker command failed with exit code 1 (use -v to see invocation)


Link Boo (arm64):
ld: in /Users/../Boo/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/.../Boo/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Есть предложения, как это исправить?

5 ответов

Решение

Для меня сработал следующий обходной путь (кредит пользователя на форумах разработчиков Apple):

Добавьте arm64 к исключенным архитектурам для схемы отладки для любых целей, у которых есть Firebase Analytics.

Очевидно, это вызовет проблемы, если вам нужно отлаживать реальное устройство iOS. Но вы можете удалить его, когда вам нужно протестировать на устройстве.

Чтобы исключить архитектуру arm64 только при запуске на симуляторе, добавьте квалификатор "Any iOS Simulator SDK" в настройки сборки. Тогда вам не придется удалять этот параметр при тестировании на физическом устройстве.

Чтобы добавить квалификатор, нажмите маленькую кнопку с плюсом, как показано.

Как добавить arm64 как исключенную архитектуру

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

  1. Выберите свой проект в Project Navigator
  2. Выберите свой проект в настройках проекта
  3. Вверху выберите "Настройки сборки".
  4. Затем выберите "Все", чтобы показать все настройки сборки.
  5. Вверху вы увидите раздел под названием " Архитектура ". В этом разделе находится " Исключенные архитектуры ". Вы хотите расширить это. Затем дважды щелкните мышью рядом с " Отладка" и введите "arm64".

Добавить эту проверку в началеdidFinishLaunchingWithOptionsи превью-мод будет игнорировать внешние модули

      if ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" {
    return true
}

Xcode 12, бета 6

Параметр сборки Valid Architectures был удален в Xcode 12. Если у вас были значения в этом параметре сборки, они вызывают проблему и должны быть удалены.

Мне удалось "очистить" параметр сборки VALID_ARCHS, добавив его обратно в качестве параметра сборки, определяемого пользователем (без значений), запустив проект (который завершился неудачно), а затем удалил параметр сборки VALID_ARCHS.

Настройка сборки My Architectures - Стандартные архитектуры.

Другие вопросы по тегам