Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FirebaseCrashlytics symbol is bundled with Binary #26

Closed
bdfox325 opened this issue May 13, 2023 · 5 comments
Closed

FirebaseCrashlytics symbol is bundled with Binary #26

bdfox325 opened this issue May 13, 2023 · 5 comments

Comments

@bdfox325
Copy link

bdfox325 commented May 13, 2023

When compiling application, getting issue:

objc[3368]: Class PodsDummy_FirebaseCrashlytics is implemented in both 
/private/var/containers/Bundle/Application/8700DB0D-AE97-4424-803C-98DA8B67E3B0/Robinhood.app/Frameworks/ETTrace.framework/ETTrace (0x11f526490) and 
/private/var/containers/Bundle/Application/8700DB0D-AE97-4424-803C-98DA8B67E3B0/Robinhood.app/Robinhood 
(0x10a88db68). One of the two will be used. Which one is undefined.

Is it necessary to compile FirebaseCrashlytics in the binary?

@noahsmartin
Copy link
Member

Is this happening when you compile? From the log it looks like this is at runtime. This happens because the app links to firebase, but so does ETTrace. Firebase is needed because it's used to record the backtraces. It shouldn't be a problem in actual use, and since ETTrace isn't design to ship to production it wouldn't affect users.

We might be able to remove that class "PodsDummy_FirebaseCrashlytics" if we stopped integrating it with cocoapods

@bdfox325
Copy link
Author

Hey. Yes, this is happening at runtime. We only package the app in our DEBUG builds so its not an issue for the end user.

@KhaosT
Copy link

KhaosT commented May 18, 2023

The main concern on our side around ETTrace itself also bundling a copy of Firebase is if the bundled version mismatches, it may cause unexpected crashes for the developers during development because Firebase internal methods calls the wrong implementation.

If ETTrace needs to include Firebase with itself, can it try to rename the symbols internally so we don't run into the potential issues down the road? Thanks!

@noahsmartin
Copy link
Member

Thanks for explaining! We do plan to rename it. We are also evaluating switching to SwiftPM so will probably wait for that to complete, which can make renaming unnecessary. The only duplicated symbol appears to be the PodsDummy_FirebaseCrashlytics class which is just an empty class added by cocoapods, more details here: CocoaPods/CocoaPods#1767. So I don't think there's anything to worry about in terms of wrong methods being called.

Since we use a local copy of the pod already (in the Unwinding folder) I suspect just renaming the pod in our Podfile would prevent the warning. So if you're interested you could try that out as a solution until we try switching to SwiftPM

@noahsmartin
Copy link
Member

Hi @bdfox325 @KhaosT We have just released an update that switches to using Swift Package Manager for building the xcframework, you can now link to the new framework, or install it directly as a SPM dependency. There won't be this Firebase class included either way. Let us know if this works for you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants