firebase / firebase-unity-sdk

The Firebase SDK for Unity
http://firebase.google.com
Apache License 2.0
201 stars 33 forks source link

[Question] why FirebaseCppApp-9_1_0.bundle file size is so big which more than 100mb #404

Closed xinatcg closed 1 year ago

xinatcg commented 1 year ago

[REQUIRED] Please fill in the following fields:

Unity editor version: 2020.3.16f1 Firebase Unity SDK version: 9.1.0 Source you installed the SDK: .unitypackage (.unitypackage or Unity Package Manager) Problematic Firebase Component: Crashlytics (Auth, Database, etc.) Other Firebase Components in use: Analytic (Auth, Database, etc.) Additional SDKs you are using: None (Facebook, AdMob, etc.) Platform you are using the Unity editor on: Mac (Mac, Windows, or Linux) Platform you are targeting: Android and iOS (iOS, Android, and/or desktop) Scripting Runtime: IL2CPP (Mono, and/or IL2CPP) Pre-built SDK from the website or open-source from this repo: _____

[REQUIRED] Please describe the question here:

why FirebaseCppApp-9_1_0.bundle file size is so big which more than 100mb

we try to prevent use LFS on github, I think 9.0.0, the bundle file is small. Is it possible to exclude this file? whether it is used for Android and iOS build?

StephenHodgson commented 1 year ago

Probably the same reason as here https://github.com/grpc/grpc/issues/28183

a-maurice commented 1 year ago

There are a few reasons for the large size. As Stephen calls out, a good chunk of the size comes from dependencies.

Another problem is that recently we added support for M1 Macs, which essentially doubled the size of that library, since it contains both architectures. We will use https://github.com/firebase/firebase-unity-sdk/issues/401 to track concerns about that. As a workaround for this particular problem, you could use the lipo tool to remove the architecture you do not need.

Finally, the ways the library symbols are laid out is a bit peculiar, where App contains symbols for all the Firebase products. This was to workaround a handful of other issues, but we are planning to investigate if the symbols can be spread out again, which would also help this problem.

xinatcg commented 1 year ago

thanks explaination

xinatcg commented 1 year ago

There are a few reasons for the large size. As Stephen calls out, a good chunk of the size comes from dependencies.

Another problem is that recently we added support for M1 Macs, which essentially doubled the size of that library, since it contains both architectures. We will use #401 to track concerns about that. As a workaround for this particular problem, you could use the lipo tool to remove the architecture you do not need.

Finally, the ways the library symbols are laid out is a bit peculiar, where App contains symbols for all the Firebase products. This was to workaround a handful of other issues, but we are planning to investigate if the symbols can be spread out again, which would also help this problem.

may I ask if we only use Firebase for Android and iOS, could we remove the X86_64 folder?