在没有Cocoapods的情况下手动集成Firebase和Google Sign In SDK时重复的符号 [英] Duplicate symbols when integrating Firebase and Google Sign In SDKs manually without Cocoapods

查看:830
本文介绍了在没有Cocoapods的情况下手动集成Firebase和Google Sign In SDK时重复的符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我现有的iOS项目中手动集成Firebase和Google Sign In SDK时,出现重复符号错误。

这里的相关SO问题没有帮助,因为它使用Cocoapods。



Firebase和Google Signin给出重复的符号错误

步骤我按时间顺序进行:


  1. 从下载的Firebase SDK(3.11.0)复制Analytics,Auth和Database文件夹以及Firebase.h文件到我的项目中并添加到目标中。


  2. 将GoogleService-Info.plist复制到项目中,并添加到目标中。

  3. 添加了-ObjC标志其他链接标志。

  4. 从下载的Google Sign In SDK(4.0.1)复制必要的框架和捆绑包到我的项目中并添加到目标中。

  5. p>
  6. 链接必要的f rameworks和libraries。



  7. 以下是相关的项目结构:

      Firebase 
    分析
    FirebaseAnalytics.framework
    FirebaseCore.framework
    FirebaseInstanceId.framework
    GoogleInterchangeUtilities.framework
    GoogleSymbolUtilities.framework
    GoogleToolboxForMac.framework
    认证
    FirebaseAuth.framework
    GTMSessionFetcher.framework
    GoogleSignIn
    GoogleAppUtilities.framework
    GoogleSignIn.bundle
    GoogleSignIn.framework
    GoogleSignInDependencies.framework
    GoogleSymbolUtilities.framework(由于Firebase Analytics已包含此功能,因此已删除)

    以下是错误日志(截断):

    $ $ $ $ $ $ $ $ $ $ $ $ $ Ld / Users / Ehtesham / Library / Developer / Xcode中/ DerivedData / AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt /编译/产品/调试-iphonesimulator / ADDRES sBookGoogleMaps.app/AddressBookGoogleMaps normal x86_64
    cd / Projects / iOS / AddressBookGoogleMaps
    export IPHONEOS_DEPLOYMENT_TARGET = 8.0
    export PATH =/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform /Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    / Applications / Xcode.app /目录/ Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2 .sdk -L / Users / Ehtesham / Library / Developer / Xcode / DerivedData / AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt / Build / Products / Debug-iphonesimulator -F / Users / Ehtesham / Library / Developer / Xcode / DerivedData / AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt / Build / Products / Debug-iphonesimulator -F / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Analytics -F / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth -F / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Database -F / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps.build/Objects-normal/x86_64/AddressBookGoogleMaps.LinkFileList -Xlinker -rpath -Xlinker @executable_path /框架-mios-simulator-version-min = 8.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps .build / Objects-normal / x86_64 / AddressBookGoogleMaps_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xli nker 2 -fobjc-arc -fobjc-link-runtime -ObjC -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build /Debug-iphonesimulator/AddressBookGoogleMaps.build/AddressBookGoogleMaps.app.xcent -framework GoogleToolboxForMac -framework FirebaseAuth -framework FirebaseAnalytics -framework GoogleSignInDependencies -framework SystemConfiguration -framework GoogleAppUtilities -framework GTMSessionFetcher -framework FirebaseCore -framework GoogleSignIn -framework SafariServices -framework GoogleSymbolUtilities -framework Accelerate框架GoogleSymbolUtilities -framework GoogleInterchangeUtilities -framework FirebaseDatabase -framework FirebaseInstanceID -Xlinker -dependency_info -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogkfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build /Debug-iphonesimulator/AddressBookGoogleMaps.build/Objects-normal/x86_64/AddressBookGoogleMaps_dependency_info.dat -o /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Products/Debug-iphonesimulator/AddressBookGoogleMaps.app/AddressBookGoogleMaps

    重复符号_OBJC_CLASS _ $ _ GTMLogStandardFormatter in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogStandardFormatter in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources /Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMa c(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_CLASS _ $ _ GTMLogBasicFormatter in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/ GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogBasicFormatter在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /项目/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_CLASS _ $ _ GTMLogNoFilter in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals /Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogNoFilter in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources /外部材料/ GoogleSignI GoogleSignInDependencies.framework / GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_CLASS _ $ _ GTMLogMininumLevelFilter in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac( GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogMininumLevelFilter在:
    /项目/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependenc IES(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_CLASS _ $ _ GTMLogMaximumLevelFilter在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(TTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogMaximumLevelFilter in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps /Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    dup授权符号_OBJC_CLASS _ $ _ GTMLogLevelFilter in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps /Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMLogLevelFilter in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Analytics / GoogleToolboxForMac .framework / GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    重复的符号_OBJC_CLASS _ $ _ GTMLogAllowedLevelFilter在:
    / Proje cts / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Analytics / GoogleToolboxForMac.framework / GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies (GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)

    ..................................... ...
    ........................................

    重复符号_OBJC_IVAR _ $ _ GTMSessionFetcherService._cookieStorageMethod:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
    / Projects /式IO / AddressBookGoogleMaps / AddressBookGoogleMaps /来源/外部对象/火力地堡/认证/ GTMSessionFetcher.framework / GTMSessionFetcher(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b。 o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionFetcherService._retryEnabled in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
    / Projects /iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadGranularity in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps /Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56 ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._shouldInitiateOffsetQuery in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._lastChunkRequest in:
    / Projects / iOS / AddressBookGoogleMaps /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GMSMSUploadFetcher_fb894b20
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._initialBodySent in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._fetcherInFlight in:
    / Projects / iOS / AddressBookGoogleMaps /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb 894b20da0d1114d3ddd8f56ed741c5.o)
    重复符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._currentOffset在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps /地址簿Google地图/资源/ Externals / Firebase / Autodesk / /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GT MSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._recentChunkReponseHeaders在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._delegateCompletionHandler in:
    / Projects / iOS / AddressBookGoogleMaps /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.fram ework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._chunkFetcher在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_CLASS _ $ _ GTMSessionUploadFetcher in:
    / Projects / iOS /AddressBookGoogleMaps /地址簿Google地图/资源/ Externals / GoogleSignIn / GoogleSignInDependencies.framework/GoogleSignInDependencies ionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_METACLASS _ $ _ GTMSessionUploadFetcher在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadDataProvider in:
    / Projects / iOS / AddressBookGoogleMaps /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSession提取程序(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_kGTMSessionFetcherUploadLocationObtainedNotification在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /项目/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._initialBodyLength in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps /Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GT MSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadFileLength在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._subdataGenerating in:
    / Projects / iOS /AddressBookGoogleMaps /地址簿Google地图/资源/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies mework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._isSubdataGenerating在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GMSMSUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_kGTMSessionUploadFetcherMaximumDemandBufferSize in:
    / Projects / iOS / AddressBookGoogleMaps /AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth / GTMSessionFetche r.framework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._chunkSize在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5。 o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher (GTSMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_kGTMSessionUploadFetcherStandardChunkSize in:
    / Projects / iOS /AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework /GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._delegateCallbackQueue在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GMSMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadMIMEType in:
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / GoogleSignIn / GoogleSignInDependencies.framework / GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth / GTMSessionFetche r.framework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadFileHandle在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5。 o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GMSMSUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._recentChunkStatusCode in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth / GTM
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5:SessionFetcher.framework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _在GTMSessionUploadFetcher._isPaused。 o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._isRestartedUpload in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth / GT MSessionFetcher.framework / GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadData在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5。 o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GMSMSUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadLocationURL in:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    / Projects / iOS / AddressBookGoogleMaps / AddressBookGoogleMaps / Sources / Externals / Firebase / Auth /GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    重复的符号_OBJC_IVAR _ $ _ GTMSessionUploadFetcher._uploadFileURL在:
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5 .o)
    /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    ld:体系结构x86_64的重复符号
    clang:error:linker命令失败,退出代码1(使用-v来查看调用)


    解决方案

    这就是我解决这个问题的方法,尽管它远非理想的解决方案。

    (这个解决方案可以应用于任何两个静态库导致重复符号错误的情况,因为这两个库都包含公共类并使用 - )复制GoogleSignInDependencies中的GoogleSignInDependencies文件。在GoogleSignInDependencies中复制GoogleSignInDependencies文件。框架在一个单独的位置路径。

    打开终端并转到PATH。

      $ cd PATH 

    运行以下命令获取

      $ lipo -info GoogleSignInDependencies 

    你会得到如下结果。

    $ p $ fat文件中的体系结构:GoogleSignInDependencies是:armv7 i386 x86_64 arm64

    正如您所见,fat文件中有4种体系结构。
    $ b

    通过运行以下命令从胖文件中获取瘦文件(仅包含一个体系结构代码的文件)。

      $ lipo -thin armv7 GoogleSignInDependencies -output armv7.a 
    $ lipo -thin i386 GoogleSignInDependencies -output i386.a
    $ lipo -thin x86_64 GoogleSignInDependencies - 输出x86_64.a
    $ lipo -thin arm64 GoogleSignInD ependencies -output arm64.a

    您将得到4个名为armv7.a,i386.a的瘦文件, x86_64.a和arm64.a。

    删除GoogleSignInDependencies文件,我们不再需要它了。



    创建4个名为armv7,i386,x86_64和arm64的新文件夹。然后将瘦文件armv7.a,i386.a,x86_64.a和arm64.a移到相应的文件夹中。你应该有如下的文件夹结构。

    b armv7.a
    i386
    i386.a
    x86_64
    x86_64.a

    从终端转到4个文件夹中的每一个,并使用以下命令从瘦文件中提取目标文件(* .o)。

      $ cd armv7 
    $ ar -x armv7.a
    $ cd ../i386
    $ ar -x i386.a
    $ cd ../x86_64
    $ ar -x x86_64.a
    $ cd ../arm64
    $ ar -x arm64.a

    运行这些命令后,4个文件夹中的每一个都应包含以下文件。 (这可以在将来的版本中改变)

    $ $ $ $ $ $ $ $ $ $ $ $ $
    GTMGeometryUtils_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMLogger_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMNSDictionary+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMNSString+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2Authentication_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2SignIn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2ViewControllerTouch_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherLogging_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherService_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionUploadFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSynchronizationAsserts_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o

    Delete the files that are conflicting with the Firebase library from each of the 4 folders. You need to delete these 6 files. (This can change in future versions.)

    GTMLogger_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o 
    GTMNSDictionary+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherLogging_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherService_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionUploadFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o

    Delete the thin files armv7.a, i386.a, x86_64.a and arm64.a.



    Combine the remaining object files into thin files by running the following commands.

    $ cd armv7 
    $ libtool -static *.o -o armv7-new.a
    $ cd ../i386
    $ libtool -static *.o -o i386-new.a
    $ cd ../x86_64
    $ libtool -static *.o -o x86_64-new.a
    $ cd ../arm64
    $ libtool -static *.o -o arm64-new.a

    Copy the newly created thin files armv7-new.a, i386-new.a, x86_64-new.a a nd arm64-new.a to a new location PATH_NEW. You can delete everything else inside PATH.



    Combine the new thin files into a new fat file by running the following commands.

    $ cd PATH_NEW 
    $ lipo -create armv7-new.a i386-new.a x86_64-new.a arm64-new.a -output GoogleSignInDependencies-new

    Use the newly generated GoogleSignInDependencies-new in place of GoogleSignInDependencies in your Xcode project.



    I strongly recommend the following article for deeper understanding of the things.



    http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries


    I am getting duplicate symbols error when integrating Firebase and Google Sign In SDKs manually in my existing iOS project.

    The related SO question here didn't help as it uses Cocoapods.

    Firebase and Google Signin giving duplicate symbols error

    Steps I have taken in chronological order:

    1. Copied Analytics, Auth and Database folder along with Firebase.h file from the downloaded Firebase SDK (3.11.0) into my project and added to targets.

    2. Copied the GoogleService-Info.plist into the project and added to targets.

    3. Added the -ObjC flag to other linker flags.

    4. Copied the necessary frameworks and bundles from the downloaded Google Sign In SDK (4.0.1) into my project and added to targets.

    5. Linked the necessary frameworks and libraries.

    Here is the related project structure:

    Firebase
        Analytics
            FirebaseAnalytics.framework
            FirebaseCore.framework
            FirebaseInstanceId.framework
            GoogleInterchangeUtilities.framework
            GoogleSymbolUtilities.framework
            GoogleToolboxForMac.framework
        Auth
            FirebaseAuth.framework
            GTMSessionFetcher.framework
    GoogleSignIn
        GoogleAppUtilities.framework
        GoogleSignIn.bundle
        GoogleSignIn.framework
        GoogleSignInDependencies.framework
        GoogleSymbolUtilities.framework (removed as Firebase Analytics already includes it)
    

    Here is the error log (truncated):

    Ld /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Products/Debug-iphonesimulator/AddressBookGoogleMaps.app/AddressBookGoogleMaps normal x86_64
        cd /Projects/iOS/AddressBookGoogleMaps
        export IPHONEOS_DEPLOYMENT_TARGET=8.0
        export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
        /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/iPhoneSimulator10.2.sdk -L/Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Products/Debug-iphonesimulator -F/Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Products/Debug-iphonesimulator -F/Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics -F/Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth -F/Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Database -F/Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn -filelist /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps.build/Objects-normal/x86_64/AddressBookGoogleMaps.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=8.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps.build/Objects-normal/x86_64/AddressBookGoogleMaps_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -ObjC -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps.build/AddressBookGoogleMaps.app.xcent -framework GoogleToolboxForMac -framework FirebaseAuth -framework FirebaseAnalytics -framework GoogleSignInDependencies -framework SystemConfiguration -framework GoogleAppUtilities -framework GTMSessionFetcher -framework FirebaseCore -framework GoogleSignIn -framework SafariServices -framework GoogleSymbolUtilities -framework Accelerate -framework GoogleSymbolUtilities -framework GoogleInterchangeUtilities -framework FirebaseDatabase -framework FirebaseInstanceID -Xlinker -dependency_info -Xlinker /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Intermediates/AddressBookGoogleMaps.build/Debug-iphonesimulator/AddressBookGoogleMaps.build/Objects-normal/x86_64/AddressBookGoogleMaps_dependency_info.dat -o /Users/Ehtesham/Library/Developer/Xcode/DerivedData/AddressBookGoogleMaps-hbtfxxvykazaogbfqnnraeuywtdt/Build/Products/Debug-iphonesimulator/AddressBookGoogleMaps.app/AddressBookGoogleMaps
    
    duplicate symbol _OBJC_CLASS_$_GTMLogStandardFormatter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogStandardFormatter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogBasicFormatter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogBasicFormatter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogNoFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogNoFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogMininumLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogMininumLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogMaximumLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogMaximumLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_METACLASS_$_GTMLogLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    duplicate symbol _OBJC_CLASS_$_GTMLogAllowedLevelFilter in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Analytics/GoogleToolboxForMac.framework/GoogleToolboxForMac(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMLogger_e66760ac68814bab22c3e6b0850da5e6.o)
    
    ........................................
    ........................................
    
    duplicate symbol _OBJC_IVAR_$_GTMSessionFetcherService._cookieStorageMethod in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionFetcherService._retryEnabled in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionFetcherService_c6b7326897506dd1305d6961fdc1ec8b.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadGranularity in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._shouldInitiateOffsetQuery in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._lastChunkRequest in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._initialBodySent in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._fetcherInFlight in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._currentOffset in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._useBackgroundSessionOnChunkFetchers in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._recentChunkReponseHeaders in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._delegateCompletionHandler in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._chunkFetcher in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_CLASS_$_GTMSessionUploadFetcher in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_METACLASS_$_GTMSessionUploadFetcher in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadDataProvider in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _kGTMSessionFetcherUploadLocationObtainedNotification in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._initialBodyLength in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadFileLength in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._subdataGenerating in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._isSubdataGenerating in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _kGTMSessionUploadFetcherMaximumDemandBufferSize in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._chunkSize in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _kGTMSessionUploadFetcherStandardChunkSize in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._delegateCallbackQueue in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadMIMEType in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadFileHandle in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._recentChunkStatusCode in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._isPaused in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._isRestartedUpload in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadData in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadLocationURL in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    duplicate symbol _OBJC_IVAR_$_GTMSessionUploadFetcher._uploadFileURL in:
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/GoogleSignIn/GoogleSignInDependencies.framework/GoogleSignInDependencies(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
        /Projects/iOS/AddressBookGoogleMaps/AddressBookGoogleMaps/Sources/Externals/Firebase/Auth/GTMSessionFetcher.framework/GTMSessionFetcher(GTMSessionUploadFetcher_fb894b20da0d1114d3ddd8f56ed741c5.o)
    ld: 194 duplicate symbols for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    解决方案

    This is how I solved it although it is far from the ideal solution.

    (This solution can be applied to any case where two static libraries cause "duplicate symbol" error due to both libraries containing common classes and using -ObjC or -all_load flag.)

    Copy the GoogleSignInDependencies file inside the GoogleSignInDependencies.framework in a separate location PATH. This file is a fat file meaning it has codes for different architectures.

    Open the terminal and go to PATH.

    $ cd PATH
    

    Run the command following command to get info about the fat library.

    $ lipo -info GoogleSignInDependencies
    

    You will get the following result.

    Architectures in the fat file: GoogleSignInDependencies are: armv7 i386 x86_64 arm64
    

    As you can see there are 4 architectures in the fat file.

    Get the thin files (file that contains code for only one architecture) from the fat file by running the following commands.

    $ lipo -thin armv7 GoogleSignInDependencies -output armv7.a
    $ lipo -thin i386 GoogleSignInDependencies -output i386.a
    $ lipo -thin x86_64 GoogleSignInDependencies -output x86_64.a
    $ lipo -thin arm64 GoogleSignInDependencies -output arm64.a
    

    You will get 4 thin files named armv7.a, i386.a, x86_64.a and arm64.a.

    Delete the GoogleSignInDependencies file, we don't need it anymore.

    Create 4 new folders named armv7, i386, x86_64 and arm64. Then move the thin files armv7.a, i386.a, x86_64.a and arm64.a to the respective folders. You should have a folder structure like the following.

    arm64
        arm64.a
    armv7
        armv7.a
    i386
        i386.a
    x86_64
        x86_64.a
    

    Go to each of the 4 folders from terminal and extract the object files (*.o) from the thin files using the following commands.

    $ cd armv7
    $ ar -x armv7.a
    $ cd ../i386
    $ ar -x i386.a
    $ cd ../x86_64
    $ ar -x x86_64.a
    $ cd ../arm64
    $ ar -x arm64.a
    

    After running these commands each of the 4 folders should contain the following files. (This can change in future versions.)

    __.SYMDEF
    GTMGeometryUtils_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMLogger_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMNSDictionary+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMNSString+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2Authentication_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2SignIn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMOAuth2ViewControllerTouch_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherLogging_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherService_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionUploadFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSynchronizationAsserts_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    

    Delete the files that are conflicting with the Firebase library from each of the 4 folders. You need to delete these 6 files. (This can change in future versions.)

    GTMLogger_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMNSDictionary+URLArguments_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherLogging_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionFetcherService_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    GTMSessionUploadFetcher_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
    

    Delete the thin files armv7.a, i386.a, x86_64.a and arm64.a.

    Combine the remaining object files into thin files by running the following commands.

    $ cd armv7
    $ libtool -static *.o -o armv7-new.a
    $ cd ../i386
    $ libtool -static *.o -o i386-new.a
    $ cd ../x86_64
    $ libtool -static *.o -o x86_64-new.a
    $ cd ../arm64
    $ libtool -static *.o -o arm64-new.a
    

    Copy the newly created thin files armv7-new.a, i386-new.a, x86_64-new.a and arm64-new.a to a new location PATH_NEW. You can delete everything else inside PATH.

    Combine the new thin files into a new fat file by running the following commands.

    $ cd PATH_NEW
    $ lipo -create armv7-new.a i386-new.a x86_64-new.a arm64-new.a -output GoogleSignInDependencies-new
    

    Use the newly generated GoogleSignInDependencies-new in place of GoogleSignInDependencies in your Xcode project.

    I strongly recommend the following article for deeper understanding of the things.

    http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries

    这篇关于在没有Cocoapods的情况下手动集成Firebase和Google Sign In SDK时重复的符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆