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

Unable to add -ObjC in other linker flags #12960

Closed AjIthiOS18 closed 5 months ago

AjIthiOS18 commented 5 months ago

Description

I first installed the Google Tag Manager via SwiftPM, added the -ObjC in the other linker flags everything was working fine. But when I installed Firebase and FirebaseUI, I started to get duplicate symbols error. Once I removed the -ObjC from other linker flags, the error also disappeared but I need to include the -ObjC for both Firebase Analytics as well as GTM to function.

Reproducing the issue

Step 1: Install GTM via SwiftPM Step 2: Add the -ObjC in other linker flags Step 3: Install Firebase and FirebaseUI via SwiftPM Step 4: Build the project

Firebase SDK Version

10.24.0 and 10.25.0

Xcode Version

15.2

Installation Method

Swift Package Manager

Firebase Product(s)

Analytics, Crashlytics, Firestore, Messaging

Targeted Platforms

iOS

Relevant Log Output

1 duplicate symbols
Linker command failed with exit code 1(use -v to see invocation)

duplicate symbol '_kTableName' in:
xxx/yyy/zzz/Build/Products/Debug-iPhonesimulator/FirebaseAuthUI.o
xxx/yyy/zzz/Build/Products/Debug-iPhonesimulator/GoogleTagManager.framework/GoogleTagManager[arm64][9](TAGHitStore.o)
ld : 1 duplicate symbols
clang: error: Linker command failed with exit code 1(use -v to see invocation)

If using Swift Package Manager, the project's Package.resolved

{

"pins" : [ { "identity" : "abseil-cpp-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/abseil-cpp-binary.git", "state" : { "revision" : "748c7837511d0e6a507737353af268484e1745e2", "version" : "1.2024011601.1" } }, { "identity" : "alamofire", "kind" : "remoteSourceControl", "location" : "https://github.com/Alamofire/Alamofire.git", "state" : { "revision" : "f455c2975872ccd2d9c81594c658af65716e9b9a", "version" : "5.9.1" } }, { "identity" : "alamofireimage", "kind" : "remoteSourceControl", "location" : "https://github.com/Alamofire/AlamofireImage.git", "state" : { "revision" : "1eaf3b6c6882bed10f6e7b119665599dd2329aa1", "version" : "4.3.0" } }, { "identity" : "app-check", "kind" : "remoteSourceControl", "location" : "https://github.com/google/app-check.git", "state" : { "revision" : "7d2688de038d5484866d835acb47b379722d610e", "version" : "10.19.0" } }, { "identity" : "appauth-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/openid/AppAuth-iOS.git", "state" : { "revision" : "c89ed571ae140f8eb1142735e6e23d7bb8c34cb2", "version" : "1.7.5" } }, { "identity" : "clevertap-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/CleverTap/clevertap-ios-sdk.git", "state" : { "revision" : "bc8aa7b0ab33204269f87aa23cd1366a6ae2fb59", "version" : "6.0.0" } }, { "identity" : "facebook-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/facebook/facebook-ios-sdk.git", "state" : { "revision" : "7fd8a930a5b2c940a22efafe0e214ed0df671312", "version" : "15.1.0" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk.git", "state" : { "revision" : "42eae77a0af79e9c3f41df04a23c76f05cfdda77", "version" : "10.24.0" } }, { "identity" : "firebaseui-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/FirebaseUI-iOS", "state" : { "revision" : "a80bbc8fd3d27e097982ac44e66abe8b84b28ba3", "version" : "13.1.0" } }, { "identity" : "google-tag-manager-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/googleanalytics/google-tag-manager-ios-sdk", "state" : { "revision" : "401bb9a21979e9dcfa8cebb00611d1b1a75272a1", "version" : "7.4.3" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "revision" : "51ba746a9d51a4bd0774b68499b0c73ef6e8570d", "version" : "10.24.0" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565", "version" : "9.4.0" } }, { "identity" : "googlesignin-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleSignIn-iOS", "state" : { "revision" : "9c9b36af86a4dd3da16048a36cf37351e63ccfe1", "version" : "6.2.4" } }, { "identity" : "googleutilities", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { "revision" : "8e5d57ed87057cd7b0e4e8f474d9e78f73eb85f7", "version" : "7.13.2" } }, { "identity" : "grpc-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { "revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359", "version" : "1.62.2" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "5ccda3981422a84186387dbb763ba739178b529c", "version" : "2.3.0" } }, { "identity" : "gtmappauth", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GTMAppAuth.git", "state" : { "revision" : "6dee0cde8a1b223737a5159e55e6b4ec16bbbdd9", "version" : "1.3.1" } }, { "identity" : "inputbaraccessoryview", "kind" : "remoteSourceControl", "location" : "https://github.com/nathantannar4/InputBarAccessoryView.git", "state" : { "revision" : "2843b4454cfb6de5b4d1e5939fef2dd6257b69ee", "version" : "5.5.0" } }, { "identity" : "interop-ios-for-google-sdks", "kind" : "remoteSourceControl", "location" : "https://github.com/google/interop-ios-for-google-sdks.git", "state" : { "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", "version" : "100.0.0" } }, { "identity" : "ios", "kind" : "remoteSourceControl", "location" : "https://github.com/iProov/ios.git", "state" : { "revision" : "313f835ee44761d79f8abd8f78b62001594c376d", "version" : "11.0.3" } }, { "identity" : "ios-branch-sdk-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/BranchMetrics/ios-branch-sdk-spm", "state" : { "revision" : "27a15e443284bbed168d8e06709b675678c2abe7", "version" : "3.4.1" } }, { "identity" : "ios-places-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/googlemaps/ios-places-sdk", "state" : { "revision" : "db961cdf29b116c497baf87c1ef8188082089fb7", "version" : "8.3.0" } }, { "identity" : "iqkeyboardmanager", "kind" : "remoteSourceControl", "location" : "https://github.com/hackiftekhar/IQKeyboardManager.git", "state" : { "revision" : "5d30eba093678d05a6d5d1800f8c1d2121c7e3dd", "version" : "7.0.2" } }, { "identity" : "kingfisher", "kind" : "remoteSourceControl", "location" : "https://github.com/onevcat/Kingfisher.git", "state" : { "revision" : "3ec0ab0bca4feb56e8b33e289c9496e89059dd08", "version" : "7.10.2" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", "version" : "1.22.5" } }, { "identity" : "lottie-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/airbnb/lottie-spm.git", "state" : { "revision" : "4d0c11c85f5a9ec3d1b0daf2dc6daebc0e2df897", "version" : "4.4.2" } }, { "identity" : "mobile-sdk-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/Jumio/mobile-sdk-ios", "state" : { "revision" : "9bbe2b939b8b36a15d7ae1059cab6fab99106d7e", "version" : "4.9.1" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", "version" : "2.30910.0" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", "version" : "2.4.0" } }, { "identity" : "qrcode", "kind" : "remoteSourceControl", "location" : "https://github.com/dagronf/qrcode.git", "state" : { "revision" : "13c605cfa866e257ac9d4ac8a47320a0e11fb6e0", "version" : "17.0.0" } }, { "identity" : "reachability.swift", "kind" : "remoteSourceControl", "location" : "https://github.com/ashleymills/Reachability.swift", "state" : { "revision" : "98e968e7b6c1318fb61df23e347bc319761e8acb", "version" : "5.0.0" } }, { "identity" : "sdwebimage", "kind" : "remoteSourceControl", "location" : "https://github.com/SDWebImage/SDWebImage.git", "state" : { "revision" : "f6afa0132961d593f07970d84e2d8b588c29ea04", "version" : "5.19.1" } }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { "revision" : "9f0c76544701845ad98716f3f6a774a892152bcb", "version" : "1.26.0" } }, { "identity" : "swift-qrcode-generator", "kind" : "remoteSourceControl", "location" : "https://github.com/dagronf/swift-qrcode-generator", "state" : { "revision" : "2b1980b825f08a81ccc762b0c4d17fcde9d5e953", "version" : "2.0.2" } }, { "identity" : "swiftimagereadwrite", "kind" : "remoteSourceControl", "location" : "https://github.com/dagronf/SwiftImageReadWrite", "state" : { "revision" : "02c141026a0c5d74635a457d2d0964c4cb8935b3", "version" : "1.4.1" } }, { "identity" : "ttgsnackbar", "kind" : "remoteSourceControl", "location" : "https://github.com/zekunyan/TTGSnackbar", "state" : { "revision" : "bbb56733e8b15fb2f8ac7783eda01b93bc4a0dad", "version" : "1.11.0" } } ], "version" : 2 }

google-oss-bot commented 5 months ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

rizafran commented 5 months ago

Hi @AjIthiOS18, I tried to reproduce the issue by installing both the Firebase SDK and GTM, and I'm able to build my app successfully. But when I tried adding the FirebaseUI, the duplicate symbol error appeared. I also tried removing the Firebase SDK but the issue persists. With this, it seems like there's a conflict between the GTM SDK and FirebaseUI. You may try to reach out to GTM support or FirebaseUI repo.

paulb777 commented 5 months ago

@ncooke3 Is investigating on the FirebaseUI side - https://github.com/firebase/FirebaseUI-iOS/pull/1188

AjIthiOS18 commented 5 months ago

Thank you @rizafran and @paulb777

paulb777 commented 5 months ago

The fix is merged for the next FirebaseUI release

morganchen12 commented 5 months ago

This should be fixed in FirebaseUI 13.2.0.