Carthage doesn't download any firebase binaries on Apple M1 with Big Sur.
When running carthage update --no-use-binaries --cache-builds --platform iOS, the empty json has downloaded.
*** Downloading binary-only framework FirebaseDynamicLinksBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json"
*** Downloading binary-only framework FirebaseRemoteConfigBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"
*** Downloading binary-only framework FirebaseAuthBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
*** Downloading binary-only framework FirebaseCrashlyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json"
*** Downloading binary-only framework FirebasePerformanceBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
*** Downloading binary-only framework FirebaseProtobufBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseProtobufBinary.json"
*** Downloading binary-only framework FirebaseInAppMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInAppMessagingBinary.json"
*** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** xcodebuild output can be found in /var/folders/74/lws4xlls7fg_m4pkl499hp6h0000gn/T/carthage-xcodebuild.SOqsl2.log
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** Downloading binary-only framework FirebaseAuthBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
*** Downloading binary-only framework FirebaseCrashlyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json"
*** Downloading binary-only framework FirebaseDynamicLinksBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json"
*** Downloading binary-only framework FirebaseInAppMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInAppMessagingBinary.json"
*** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
*** Downloading binary-only framework FirebasePerformanceBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
*** Downloading binary-only framework FirebaseProtobufBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseProtobufBinary.json"
*** Downloading binary-only framework FirebaseRemoteConfigBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"
{
"Mac" : [
],
"watchOS" : [
],
"tvOS" : [
],
"commitish" : "7.1.0",
"iOS" : [
]
}
Hi @d-date - hope you're doing well.
I'm not sure about the --no-use-binaries bit since Firebase only offers a binary distribution of Carthage, but right now Carthage won't work well with Apple silicon Macs using the M1 chip due to Carthage's lack of support for XCFrameworks: https://github.com/Carthage/Carthage/issues/2799
We can't include the simulator slice for arm64 as well as the arm64 device slice, they simply can't be put into a .framework together. It's unfortunate, but until Carthage can support XCFrameworks it's going to be a poor experience for Carthage since you can't work on the simulator. You may be able to still pull the frameworks down if you run on device only, and potentially get rid of the --no-use-binaries flag, I'll try it out on my Mac mini later today.
Sorry about that!
Hi @ryanwilson
I'm doing well, thank you馃檪
You can ignore no-use-binaries option since binary hasn't effected.
I see your points and it's hard to continue to use Carthage until XCFramework be supported.
I think the workaround to make us to use them in Carthage is Firebase team prepares binary for Apple M1, and prepare other jsons for versioning.
(Looks so hard to do maintenance)
Since SwiftPM is also not work for us now(#6472), it seems the only way to use Firebase in M1 now is use CocoaPods.
Thank you for your help!
@d-date FYI, the Firebase does also support a binary zip packaging that as of 7.2.0 is comprised of xcframeworks for everything except FirebaseML. See the download at https://github.com/firebase/firebase-ios-sdk/releases/tag/CocoaPods-7.2.0
@paulb777 Thank you for your suggestion. It's also good way to introduce as pre-build binary (except versioning).
Carthage update on plans for binary xcframework support at https://github.com/Carthage/Carthage/pull/3071#issuecomment-747085975
Latest "master" branch of carthage compile xcframework correctly.
Can we have a release version with the right firebase .xcframework that work on M1 macs please ?
@mmdumi thanks for pointing out that Carthage has merged support. However, it's still not in a release so we can't break all existing Carthage users until at the very least there's a release.
Actually, I haven't seen evidence that binary support for xcframeworks has yet merged. The PR that added support for source xcframeworks explicitly says it will be addressed in a subsequent PR.
As I understand it, no-use-binaries is useless on M1 Macs because there are no arm64 binaries. Which seems kind of silly but I think I read you must build each dependency.
Most helpful comment
@d-date FYI, the Firebase does also support a binary zip packaging that as of 7.2.0 is comprised of xcframeworks for everything except FirebaseML. See the download at https://github.com/firebase/firebase-ios-sdk/releases/tag/CocoaPods-7.2.0