Since I added Firebase to my project Live Previews no longer work. Regular builds do work, just no live previews.
I tried following all of this answer solutions and comments with no luck (that question has the same errors although unrelated to SwiftUI).
Diagnostics:
linker command failed with exit code 1 (use -v to see invocation)
LinkDylibError: Failed to build UserViews.swift
Linking failed: linker command failed with exit code 1 (use -v to see invocation)
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)
Try Disable Code Coverage for the scheme.
This worked for me.
On Xcode 11.3 I've been able to get SwiftUI Previews building by simply disabling Code Coverage gathering for my scheme. The above solutions weren't working as I was still getting "failedToBuildDylib" errors for Firebase. In fact, the above fixes don't seem to be necessary at all, at least on my case. Hope this helps someone.
Credits to: https://twitter.com/dannypier/status/1190312160557068293
For now I have to temporarily disable Firebase (and GoogleSignIn) to work with SwiftUI's Live Previews.
In my case I use Cocoapods, so I comment out the libraries from my Podfile:
# pod 'Firebase/Analytics'
# pod 'Firebase/Crashlytics'
# pod 'Firebase/Messaging'
# pod 'GoogleSignIn'
Then $ pod install
to temporarily remove them.
And finally use #if canImport(Firebase)
(and #if canImport(GoogleSignIn)
) preprocessor macros where needed.
#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
Not optimal, but until Xcode 12 fixes it or Google updates its frameworks no other way around it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With