11

由于我将 Firebase 添加到我的项目中,实时预览不再起作用。常规构建确实有效,只是没有实时预览。

我尝试遵循所有这些答案解决方案和评论,但没有运气(该问题有相同的错误,尽管与 SwiftUI 无关)。

诊断:

链接器命令失败,退出代码为 1(使用 -v 查看调用)


LinkDylibError:无法构建 UserViews.swift

链接失败:链接器命令失败,退出代码为 1(使用 -v 查看调用)

ld: warning: directory not found for option '-F/Applications/Xcode.app/Contents/SharedFrameworks-iphonesimulator'
Undefined symbols for architecture x86_64:
  "___llvm_profile_runtime", referenced from:
      ___llvm_profile_runtime_user in FirebaseCore(FIRAppAssociationRegistration.o)
      ___llvm_profile_runtime_user in FirebaseCore(FIRComponentType.o)
      ___llvm_profile_runtime_user in FirebaseCore(FIRConfiguration.o)
      ___llvm_profile_runtime_user in FirebaseCore(FIRCoreDiagnosticsConnector.o)
      ___llvm_profile_runtime_user in FirebaseCore(FIRDiagnosticsData.o)
      ___llvm_profile_runtime_user in FirebaseCore(FirebaseCore-dummy.o)
      ___llvm_profile_runtime_user in FirebaseCore(FIROptions.o)
      ...
     (maybe you meant: ___llvm_profile_runtime_user)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

3 回答 3

8

尝试为方案禁用代码覆盖率

这对我有用。

在 Xcode 11.3 上,我可以通过简单地为我的方案禁用代码覆盖率收集来构建 SwiftUI 预览。上述解决方案不起作用,因为我仍然收到 Firebase 的“failedToBuildDylib”错误。事实上,上述修复似乎根本没有必要,至少就我而言。希望这可以帮助某人。

归功于:https ://twitter.com/dannypier/status/1190312160557068293

于 2020-06-13T04:23:52.080 回答
8

现在我必须暂时禁用 Firebase(和 GoogleSignIn)才能使用 SwiftUI 的实时预览。

在我的例子中,我使用 Cocoapods,所以我从我的 Podfile 中注释掉这些库:

#  pod 'Firebase/Analytics'
#  pod 'Firebase/Crashlytics'
#  pod 'Firebase/Messaging'
#  pod 'GoogleSignIn'

然后$ pod install暂时删除它们。

最后在需要的地方使用#if canImport(Firebase)(和)预处理器宏。#if canImport(GoogleSignIn)

#if canImport(Firebase)
import Firebase
#endif
#if canImport(GoogleSignIn)
import GoogleSignIn
#endif

// ...

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
{
    // ...

    #if canImport(Firebase)
    FirebaseApp.configure()
    #endif

不是最优的,但在 Xcode 12 修复它或谷歌更新其框架之前没有其他方式解决它。

于 2020-05-06T16:05:21.903 回答
1

使用 SPM 安装 firebase(使用 beta 分支,因为它现在仍然是 beta)并删除 CocoPods .. 并且预览将再次完美运行

这是通过 SPM 安装 firebase 的链接 https://github.com/firebase/firebase-ios-sdk/blob/master/SwiftPackageManager.md

于 2020-10-05T14:08:42.747 回答