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
FR: Add xcframeworks in zip file on tagged assets list for version #7576
Comments
Hi @jesusmateos1234, thanks for the request! We do have the |
Thanks for your support @ryanwilson. We need to use some xcframeworks (not all) with manual - in house solution- integration. This not mean that Firebase.zip is a good solution for someone who has a bit knowledge or nothing to integrate xcframeworks in his project. We only need a few of them, we don't required download 300mb of frameworks that we don't use. We need something like Appboy that specify zip files for their xcframeworks. It's a performance question Including frameworks on project that we not use (or downloading it) will cause the IPA much bigger or spend time that we don't need to spend. We know what frameworks we need to use in base of firebase service that we are using and we will use, and the Github Readme. It's only add a split of this zip file (but also keeping the largest zip file for other users) Other solution is provide a urls where we can download these xcframeworks individually if you don't like to put on assets tag version, how you have actually with Carthage (but in this case with xcframeworks not fat binaries)
This is something critical for us, time to download this zip will cause more time to spend for release a new version. Thanks for all, i'll hope that this request will be supported. |
@jesusmateos1234 Thanks for the explanation. The Carthage solution might be feasible for us once Carthage adds support for prebuilt binary xcframeworks - which looks to be making progress now at Carthage/Carthage#3123 |
@paulb777 Thanks for your support. Nowadays we not use Carthage, so for this we're requesting this. |
The idea is that if we migrate to xcframeworks for the Carthage distribution, you could use the Carthage URLs. |
Since xcframeworks make binary distribution so much easier: Firebase is a massive dependency slowing down the simplest iOS project build. We stopped integrating it via cocoapods. We simply added the xcframeworks to the project. However this makes updates a mess... |
@savage7 Distributing as a vendored_binary makes supporting multiple Xcode versions more complicated, makes debugging harder, makes supporting a dynamic or static linking choice impossible, and is less stable in CocoaPods. Despite that, there is a solution for the slowest part of the Firebase build - Firestore - at https://github.com/invertase/firestore-ios-sdk-frameworks We also support building your own binaries with the tooling at https://github.com/firebase/firebase-ios-sdk/tree/master/ReleaseTooling |
@paulb777 thank you for your support 😊 It would be really great if the released frameworks would be available separately on each release, like @jesusmateos1234 proposed. This would make it "easy" to create unofficial/official "binary" podspecs referencing these. |
@savage7 Thanks for the request. We'll investigate options. Would you explain the issue in a bit more detail. I understand the slowness case, but from my understanding, that is almost exclusively a Firestore issue. Where else do you see that with Firebase? |
@paulb777 The problem arises mostly for our SwiftUI projects, we are forced to reduce our dependencies to an absolute minimum otherwise the SwiftUI Previews are getting unusable (timeouts since the preview gets slow or rebuilds take ages). We are also successfully using https://github.com/grab/cocoapods-binary-cache to prebuild the libs for our devs. But having binary pods from the start would ease the process of speeding up builds alot, since plugins like "cocoapods-binary-cache" have a tendency to break easily... |
This is now merged ✅ (Release pending) |
Building with Carthage 0.38 with the --use-xcframeworks flag and adding all the xcframeworks that was build under frameworks in XC and setting to "do not embed" XC fails to build with errors like
My cartfile looks like this:
I looks like I'm missing some GRPC stuff. The only thing Carthage spit out was What am I doing wrong here? |
The Firestore folder should also include |
Manually looking in the Firestore.zip reveals
After running the command The
Seems to me like everything besides I'm really not sure what's going on here.. |
Thanks for the report. I reproduced and opened #8112 to track. Let's continue the discussion there. |
Feature proposal
For example in tag v7.6.0 add FirebaseCore.xcframework.zip, FirebaseMessagging.xcframework.zip ...
The text was updated successfully, but these errors were encountered: