繁体   English   中英

使用 Firebase/Analytics pod 时 SwiftUI 预览不起作用

[英]SwiftUI previews not working when using Firebase/Analytics pod

似乎在将 Xcode 12 更新到 beta 5 后,SwiftUI 预览在使用 Firebase/Analytics pod 时不再起作用。 预览失败并出现错误:

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)

任何建议如何解决这个问题?

要仅在模拟器上运行时排除 arm64 架构,请在构建设置中添加“Any iOS Simulator SDK”限定符。 然后,在物理设备上进行测试时,您不必删除此设置。

在此处输入图像描述

要添加限定符,请单击小加号按钮,如图所示。

在此处输入图像描述

以下解决方法(感谢 Apple Developer 论坛上的用户)对我有用:

对于具有 Firebase Analytics 的任何目标,将“arm64”添加到调试方案的排除架构中。

如果您需要调试到实际的 iOS 设备,这显然会给您带来问题。 但是当您需要在设备上进行测试时,您可以将其移除。

如何将 arm64 添加为排除架构

接受的答案也对我有用。 但我不知道如何做到这一点,因为我以前从未这样做过,所以我想向你展示我为实现这一目标所采取的步骤。

构建设置

  1. Select 项目导航器中的项目
  2. Select 你的项目在项目设置
  3. 在顶部,select“构建设置”
  4. 然后 select "All" 显示所有构建设置
  5. 在顶部,您将看到一个名为“架构”的部分。 在本节中是“排除的架构”。 你想扩展它。 然后在Debug旁边,双击并输入“arm64”。

Xcode 12,测试版 6

Xcode 12 中删除了有效架构构建设置。如果您在此构建设置中有值,则它们会导致问题,需要将其删除。

我能够通过将 VALID_ARCHS 构建设置重新添加为用户定义的构建设置(没有值),运行项目(失败),然后删除 VALID_ARCHS 构建设置来“清除”它。

我的架构构建设置是标准架构。

didFinishLaunchingWithOptions开始时添加此检查,并且预览模式将忽略外部模块

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM