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

Distribution as an XCFramework #1078

Open
vadimbelyaev opened this issue Jul 22, 2022 · 3 comments
Open

Distribution as an XCFramework #1078

vadimbelyaev opened this issue Jul 22, 2022 · 3 comments

Comments

@vadimbelyaev
Copy link

When building for Apple platforms, Firebase provides a way to include it into the project without a package manager using an XCFramework. It vastly improves build times, especially in CI environments where incremental builds aren't happening (saving about 30 minutes of build times).

However, FirebaseUI isn't currently getting distributed as an XCFramework and I'd love to see it happen some day.

Cheers!
-Vadim

@morganchen12
Copy link
Contributor

We don't have a good method of synchronizing FirebaseUI binary releases with Firebase upstream binary releases since they're both on different release schedules. However, you could manually include FirebaseUI as source via git submodule (though this requires manually keeping the versions in sync) and use Firebase via the XCFramework approach you described. Most of the build time savings will come from Firebase itself, since FirebaseUI is a relatively small codebase (less than 1% the size of Firestore alone, including Firestore's dependencies).

@vadimbelyaev
Copy link
Author

vadimbelyaev commented Sep 15, 2022

@morganchen12, thanks a lot for your response and sorry for my delayed reply.

I tried adding FirebaseUI as a git submodule while having Firebase as an XCFramework, but my attempts were not successful, mostly because of transient dependencies that are the same for FirebaseUI and Firebase iOS SDK. I think mostly it's just my lack of experience in setting up the build configuration in such a way.

I'm okay with closing this issue since I understand the fundamental constraints that you describe.

If someone from the community knows if there is any documentation or tutorial available on how to configure the project to use Firebase as an XCFramework and have FirebaseUI as a git submodule, I'd love to read it. Until then, looks like I'm destined to just use SwiftPM :)

Cheers and thanks for the great work!
-Vadim

@morganchen12
Copy link
Contributor

I'll leave this issue open, since it's a significant increase in complexity to include a dependency via submodule instead of prebuilt XCFramework.

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

2 participants