firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.65k stars 1.48k forks source link

FirebaseCore and FirebaseDynamicLink - Undefined symbols for architecture x86_64 #2044

Closed NishaParmar closed 6 years ago

NishaParmar commented 6 years ago

[REQUIRED] Step 2: Describe your environment

[REQUIRED] Step 3: Describe the problem

   getting issue by adding FirebaseCore and FirebaseDynamicLink framework. objective c project added by framework not using pod

Relevant Code:

// TODO(you): code here to reproduce the problem
Undefined symbols for architecture x86_64:
  "_GULLoggerRegisterVersion", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULLoggerInitializeASL", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULLogBasic", referenced from:
      _FIRLogBasic in FirebaseCore(FIRLogger.o)
  "_GULLoggerEnableSTDERR", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULIsLoggableLevel", referenced from:
      _FIRIsLoggableLevel in FirebaseCore(FIRLogger.o)
  "_GULSetLoggerLevel", referenced from:
      _FIRSetLoggerLevel in FirebaseCore(FIRLogger.o)
  "_GULLoggerForceDebug", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
paulb777 commented 6 years ago

The GoogleUtilities framework must be added to satisfy those dependencies.

moriah-hammond commented 5 years ago

@paulb777 I am having the same issue, and am attempting to add the GoogleUtilites framework using carthage but I cannot seem to find the binary. https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md . Could you please shed light on which one I need to include? Currently I am using the following binaries


binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFunctionsBinary.json" "5.15.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" "5.15.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json" "5.15.0"```
paulb777 commented 5 years ago

From the instructions:

Note that FirebaseAnalyticsBinary must always be included.

moriah-hammond commented 5 years ago

I am including that as well binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFunctionsBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"

moriah-hammond commented 5 years ago

@paulb777 my bad I left it out before

moriah-hammond commented 5 years ago
    cd /Users/moriah.hammond/Documents/Mobile.iOS.App.Work
    export IPHONEOS_DEPLOYMENT_TARGET=11.2
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -L/Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Products/Debug(dev)-iphonesimulator -F/Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Products/Debug(dev)-iphonesimulator -F/Users/moriah.hammond/Documents/Mobile.iOS.App.Work/Carthage/Build/iOS -F/Users/moriah.hammond/Documents/Mobile.iOS.App.Work -F/Users/moriah.hammond/Documents/Mobile.iOS.App.Work/otherFrameworks -filelist /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Intermediates.noindex/Work.build/Debug(dev)-iphonesimulator/Work.build/Objects-normal/x86_64/Work.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=11.2 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Intermediates.noindex/Work.build/Debug(dev)-iphonesimulator/Work.build/Objects-normal/x86_64/Work_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Intermediates.noindex/Work.build/Debug(dev)-iphonesimulator/Work.build/Objects-normal/x86_64/Work.swiftmodule -ObjC -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Intermediates.noindex/Work.build/Debug(dev)-iphonesimulator/Work.build/Work.app-Simulated.xcent -lc++ -framework FirebaseMessaging -framework Security -framework Differentiator -framework FirebaseAnalytics -framework Crashlytics -framework FirebaseCoreDiagnostics -framework GTMSessionFetcher -framework Alamofire -framework FirebaseInstanceID -framework FirebaseNanoPB -framework FirebaseRemoteConfig -framework GoogleToolboxForMac -framework nanopb -framework Kingfisher -framework FirebaseABTesting -framework Lottie -framework Protobuf -framework RxCocoa -framework RxDataSources -framework FirebaseFunctions -framework FirebaseCore -framework RxSwift -framework SnagFoundation -framework Fabric -Xlinker -dependency_info -Xlinker /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Intermediates.noindex/Work.build/Debug(dev)-iphonesimulator/Work.build/Objects-normal/x86_64/Work_dependency_info.dat -o /Users/moriah.hammond/Library/Developer/Xcode/DerivedData/Work-cedqtegpmjnjwhdceqhhtvqvhbaq/Build/Products/Debug(dev)-iphonesimulator/Work.app/Work

Undefined symbols for architecture x86_64:
  "_GULSetLoggerLevel", referenced from:
      _FIRSetLoggerLevel in FirebaseCore(FIRLogger.o)
  "_GULLoggerRegisterVersion", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULLoggerInitializeASL", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULLoggerEnableSTDERR", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_GULLoggerForceDebug", referenced from:
      ___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
  "_OBJC_CLASS_$_APMAnalytics", referenced from:
      objc-class-ref in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_kAPMMonitorLogTagOptionKey", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_gAPMAppMeasurementLibraryVersion", referenced from:
      +[FIRAnalytics initialize] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_kAPMIsAnalyticsCollectionEnabled", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_METACLASS_$_APMMeasurement", referenced from:
      _OBJC_METACLASS_$_FIRAMeasurement in FirebaseAnalytics(FIRAMeasurement_7113499ff6c634053dac5bf06844d505.o)
  "_OBJC_CLASS_$_GULUserDefaults", referenced from:
      objc-class-ref in FirebaseInstanceID(FIRInstanceIDStore_d561cdee2d9f8fc26566b1c545e02875.o)
      objc-class-ref in FirebaseInstanceID(FIRInstanceIDCheckinPreferences_306fdb082ecca463aff31a603a452ec5.o)
      objc-class-ref in FirebaseInstanceID(FIRInstanceIDUtilities_e6b1b6e92e6be2bfdc1b4326e55da04d.o)
  "_APMFormattedUserPropertyName", referenced from:
      +[FIRAnalytics setUserPropertyString:forName:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_METACLASS_$_APMSessionReporter", referenced from:
      _OBJC_METACLASS_$_FIRASessionReporter in FirebaseAnalytics(FIRASessionReporter_fedb19668cf4c09fe19f4dd3dd423569.o)
  "_OBJC_CLASS_$_APMValue", referenced from:
      _OBJC_CLASS_$_FIRAValue in FirebaseAnalytics(FIRAValue_2e0ad7f420162fa95ff8e12af195aa2b.o)
  "_OBJC_CLASS_$_APMMeasurement", referenced from:
      objc-class-ref in FirebaseAnalytics(FIRAMeasurement_7113499ff6c634053dac5bf06844d505.o)
      _OBJC_CLASS_$_FIRAMeasurement in FirebaseAnalytics(FIRAMeasurement_7113499ff6c634053dac5bf06844d505.o)
      objc-class-ref in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_METACLASS_$_APMAdExposureReporter", referenced from:
      _OBJC_METACLASS_$_FIRAAdExposureReporter in FirebaseAnalytics(FIRAAdExposureReporter_9f9da43a0e4ed4258a1c1de8d08084f3.o)
  "_OBJC_METACLASS_$_APMConditionalUserProperty", referenced from:
      _OBJC_METACLASS_$_FIRAConditionalUserProperty in FirebaseAnalytics(FIRAConditionalUserProperty_991dd1dfefbe571de6dbf327969af9a0.o)
  "_OBJC_METACLASS_$_APMScreenViewReporter", referenced from:
      _OBJC_METACLASS_$_FIRAScreenViewReporter in FirebaseAnalytics(FIRAScreenViewReporter_ded399434f21648531c172048caa1206.o)
  "_OBJC_CLASS_$_APMScreenViewReporter", referenced from:
      objc-class-ref in FirebaseAnalytics(FIRAScreenViewReporter_ded399434f21648531c172048caa1206.o)
      _OBJC_CLASS_$_FIRAScreenViewReporter in FirebaseAnalytics(FIRAScreenViewReporter_ded399434f21648531c172048caa1206.o)
  "_OBJC_CLASS_$_APMAdExposureReporter", referenced from:
      _OBJC_CLASS_$_FIRAAdExposureReporter in FirebaseAnalytics(FIRAAdExposureReporter_9f9da43a0e4ed4258a1c1de8d08084f3.o)
  "_APMFormattedEventName", referenced from:
      +[FIRAnalytics logEventWithOrigin:name:parameters:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_CLASS_$_APMConditionalUserProperty", referenced from:
      _OBJC_CLASS_$_FIRAConditionalUserProperty in FirebaseAnalytics(FIRAConditionalUserProperty_991dd1dfefbe571de6dbf327969af9a0.o)
  "_OBJC_CLASS_$_APMEvent", referenced from:
      _OBJC_CLASS_$_FIRAEvent in FirebaseAnalytics(FIRAEvent_c32f39c4e1681f460e696def59992d96.o)
  "_kAPMSafelistedEventsOptionKey", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_METACLASS_$_APMEvent", referenced from:
      _OBJC_METACLASS_$_FIRAEvent in FirebaseAnalytics(FIRAEvent_c32f39c4e1681f460e696def59992d96.o)
  "_OBJC_CLASS_$_GULNetwork", referenced from:
      objc-class-ref in FirebaseCoreDiagnostics(FIRClearcutLogger_39f37e7cc81dbdcb1b22721b95a40297.o)
  "_kAPMIsAnalyticsCollectionDeactivated", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_CLASS_$_APMConditionalUserPropertyController", referenced from:
      _OBJC_CLASS_$_FIRAConditionalUserPropertyController in FirebaseAnalytics(FIRAConditionalUserPropertyController_faf82aa1c60b80614f617fe3e96f08fe.o)
  "_OBJC_CLASS_$_APMSessionReporter", referenced from:
      _OBJC_CLASS_$_FIRASessionReporter in FirebaseAnalytics(FIRASessionReporter_fedb19668cf4c09fe19f4dd3dd423569.o)
  "_GULIsLoggableLevel", referenced from:
      _FIRIsLoggableLevel in FirebaseCore(FIRLogger.o)
  "_OBJC_CLASS_$_APMIdentifiers", referenced from:
      _OBJC_CLASS_$_FIRAIdentifiers in FirebaseAnalytics(FIRAIdentifiers_16c07d77c69044b43f7b9de70da25f9f.o)
  "_OBJC_CLASS_$_GULReachabilityChecker", referenced from:
      objc-class-ref in FirebaseMessaging(FIRMessaging.o)
  "_OBJC_METACLASS_$_APMIdentifiers", referenced from:
      _OBJC_METACLASS_$_FIRAIdentifiers in FirebaseAnalytics(FIRAIdentifiers_16c07d77c69044b43f7b9de70da25f9f.o)
  "_GULLogBasic", referenced from:
      _FIRLogBasic in FirebaseCore(FIRLogger.o)
  "_OBJC_METACLASS_$_APMUserAttribute", referenced from:
      _OBJC_METACLASS_$_FIRAUserAttribute in FirebaseAnalytics(FIRAUserAttribute_66224d31710f67eef7b8c0e9f1c05115.o)
  "_OBJC_CLASS_$_APMUserAttribute", referenced from:
      _OBJC_CLASS_$_FIRAUserAttribute in FirebaseAnalytics(FIRAUserAttribute_66224d31710f67eef7b8c0e9f1c05115.o)
  "_OBJC_METACLASS_$_APMConditionalUserPropertyController", referenced from:
      _OBJC_METACLASS_$_FIRAConditionalUserPropertyController in FirebaseAnalytics(FIRAConditionalUserPropertyController_faf82aa1c60b80614f617fe3e96f08fe.o)
  "_kAPMAnalyticsConfiguration", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_kAPMAppMeasurementOriginFirebase", referenced from:
      +[FIRAnalytics startWithConfiguration:options:] in FirebaseAnalytics(FIRAnalytics_ca9cdf99cfbae2f51d040b73dd242e94.o)
  "_OBJC_CLASS_$_GULAppEnvironmentUtil", referenced from:
      objc-class-ref in FirebaseMessaging(FIRMessagingReceiver.o)
      objc-class-ref in FirebaseMessaging(FIRMessagingAnalytics.o)
      objc-class-ref in FirebaseCoreDiagnostics(FIRDiagnostics_b8d2083bbf595e32a15f4c92bf56379b.o)
      objc-class-ref in FirebaseRemoteConfig(RCNConfigSettings_22e23cfa4b36fa0d65a3f7296e546bb7.o)
      objc-class-ref in FirebaseMessaging(FIRMessagingUtilities.o)
      objc-class-ref in FirebaseRemoteConfig(RCNDevice_b34010fb0ab3a3316b3c7f3a7a1f6525.o)
  "_OBJC_METACLASS_$_APMValue", referenced from:
      _OBJC_METACLASS_$_FIRAValue in FirebaseAnalytics(FIRAValue_2e0ad7f420162fa95ff8e12af195aa2b.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
paulb777 commented 5 years ago

Those symbols indicate that the GoogleUtilities and AppMeasurement frameworks aren't being linked.

semenoh commented 5 years ago

@moriah-hammond I have the same issue. Did you managed to solve it ? It looks like underscores causing an issue: In for instance it complains about _GULIsLoggableLevel but there is GULIsLoggableLevel.

moriah-hammond commented 5 years ago

@paulb777 Can you please point me to the appropriate binary URLS https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md for the GoogleUtilities and AppMeasurement frameworks so that I can bring them in using carthage

paulb777 commented 5 years ago

@moriah-hammond binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"

zero-tolerance0 commented 5 years ago

Did you solve the problem? i have the same problem, i use without CocoaPods, it used to run fine when using FirebaseAnalyticsBinary, and FirebaseRemoteMessaging, however, after adding FirebaseRemoteConfigBinary I get:

Undefined symbols for architecture arm64: "_GULIsLoggableLevel", referenced from: _FIRIsLoggableLevel in FirebaseCore(FIRLogger.o) "_GULLogBasic", referenced from: _FIRLogBasic in FirebaseCore(FIRLogger.o) "_GULLoggerEnableSTDERR", referenced from: _FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "GULLoggerForceDebug", referenced from: FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "_GULLoggerInitializeASL", referenced from: _FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "GULLoggerRegisterVersion", referenced from: FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o) "_GULSetLoggerLevel", referenced from: _FIRSetLoggerLevel in FirebaseCore(FIRLogger.o) "_OBJCCLASS$_GULAppEnvironmentUtil", referenced from: objc-class-ref in FirebaseInstanceID(FIRInstanceID.o) "_OBJCCLASS$_GULUserDefaults", referenced from: objc-class-ref in FirebaseInstanceID(FIRInstanceIDCheckinPreferences.o) objc-class-ref in FirebaseInstanceID(FIRInstanceIDUtilities.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Please need help.

paulb777 commented 5 years ago

@zero-tolerance0 It looks like the GoogleUtilities.framework is not being linked.

zero-tolerance0 commented 5 years ago

Actually I successfully built project after adding RemoteConfig, what I did:

added all firebase frameworks to my target(s) that needs to be added as well as pointed out upwards by @paulb777 which are: googleUtilities nano firebaseNano protobuf firebase firebaseAnalytics firebaseAnalyticsConnector A/b testing googleAppMeasurements

as someone in comments stated: "Firebase.framework FirebaseCore.framework FirebaseInstanceID.framework GoogleUtilities.framework Protobuf.framework" must be included.

lastly I updated all versions of this frameworks and build the project,

problem has gone, thanks

ghost commented 5 years ago

Hi, I am working on integration firebase ML vision kit without using the cocoa pods:

I am able to integrate the firebase’s analytics frameworks(there are 8 frameworks)in demo project and project build successfully. I was trying same things with required firebase MLVision (there are 7 frameworks) and MLVisionTextModel (there are 3 frameworks with 1 resource folder). I am getting below error as ld: framework not found FirebaseMLVisionTextModel clang: error: linker command failed with exit code 1 (use -v to see invocation)

The framework FirebaseMLVisionTextModel doesn't have FirebaseMLVisionTextModel.h file. It doesn't exist header folder which is missing in FirebaseMLVisionTextModel framework: I am getting same issue for TextDetector.framework which doesn't have any header folder.

Firebase.h : FirebaseMLVisionTextModel.h file deceleration:

if __has_include(<FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>)

import <FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>

endif

Pls suggest how do I fix this problem. How do I use FirebaseMLVisionTextModel and TextDetector framework which are doesn't have any header , these framework only exec file?

Xcode version: 10.1 Firebase SDK version: 5.20.2 Firebase Component: ML Kit (text recognition) Component version:

I raised this issue separate thread: https://github.com/firebase/firebase-ios-sdk/issues/2848

ghost commented 5 years ago

Problem has been fixed. Thanks.