簡體   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