[NTV-614] Firebase Binaries To SPM #1729
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π² What
As part of our migration to SPM from Carthage to support M1 builds.
π€ Why
Relevant context here.
π How
Before:
Cartfile
(.resolved reflects same changes)After:
Cartfile
(.resolved reflects same changes)Using version 9.0 because it 8.0 is earliest supported version that is not beta and available on SPM, and 9.0 was defaulted to in SPM, tested it with 9.0, no code changes so it should be fine.
So investigating each library we found that direct package translations using this chart.
Compare the above with what we had in the previous section above (the
Cartfile
).We don't import Firebase In-App Messaging (like before) into SPM because we don't use it. Here is the page for it. Judging by the description we need to have a console set up on firebase's dashboard, which currently doesn't exist for either native platform.
Also
FirebaseProtobufBinary
doesn't seem to have a direct translation package in the chart above but it includedFirebasePerformance
along withProtobuf
when used within Carthage.Browsing the web found this reference to Google Protocol buffers, but no direct
Protobuf.framework
reference (asFirebasePerformance
is a package we did include into SPM). It seems to be unsupported at the moment, as it isn't listed on Carthage's firebase page. There's no immediate need to find a use for it, as it seems like a dependency that came withFirebasePerformance
.It seems like we can use the exact same
upload-dsyms-firebase.sh
script that we previously used with the Carthage firebase packages.Use with Carthage instructions:
Use with SPM instructions:
Assuming its the same upload-symbols executable, which worse case scenario won't be and we fail automatically updating dSyms after a build is released. Probably be able to catch this pretty early (alpha/beta) stages and fix if not being uploaded.
After this branch is merged, beta is created we should see the dSyms get uploaded to firebase console to signal all is good. Will keep an eye out for crashlytics, analytics, performance as well on the dashboard to ensure they are properly reporting.
β Acceptance criteria
β° TODO
import Firebase
but also note we are usingFirebasePerformance
,FirebaseAnalytics
,FirebaseCrashlytics
andFirebaseInAppMessaging-Beta
. Do we need them all? Try removing ones we don't need, get project building.FirebaseCrashlytics
(so if its' still used, then make the changes.)