firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.56k stars 1.45k forks source link

Carthage installation of FirebaseAnalytics and FirebaseCrashlytics fails for 6.29.0 #6158

Closed agirault closed 4 years ago

agirault commented 4 years ago

Step 1: Describe your environment

Step 2: Describe the problem

Trying to use Carthage to install Firebase Analytics, Crashlytics, Performance, and Protobuf (required by Performance) resolves to different versions of Firebase (mix of 6.28.1 and 6.29.0) which isn't recommended, even though the *Binary.json files all have entries for 6.29.0

Steps to reproduce:

Following the documentation, create this Cartfile:

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseProtobufBinary.json"

Running carthage update generates mismatched versions in Cartfile.resolved:

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" "6.28.1"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json" "6.28.1"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" "6.29.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseProtobufBinary.json" "6.29.0"

If we manually change all the versions to 6.29.0 in Cartfile.resolved then run cartfile bootstrap, Carthage will throw the following error:

No available version for binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" satisfies the requirement: == 6.29.0

However:

I was able to manually download the zip listed in the Binary.json files for 6.29.0 and place them, and everything worked fine, so I assume there is a problem with how Carthage resolves those Firebase Binary.json files?


Based on contributions and activity on other issues, I believe this might be a question for @paulb777?

google-oss-bot commented 4 years ago

I found a few problems with this issue:

agirault commented 4 years ago

Also, I'm curious why run and upload-symbols are in the FirebaseCrashlytics-*.zip file referenced by FirebaseCrashlyticsBinary.json along with the framework, but they are not present when letting Carthage grab them.

paulb777 commented 4 years ago

@agirault Thanks for the report. I'm able to successfully carthage update to the 6.29.0 versions, so not able to reproduce.

For the second question, it's a result of Carthage being opinionated about only installing frameworks and nothing else.

Since you have a workaround and it's not obviously reproducible, I'll mark this needs-info to auto close unless we get other reports or additional information.

agirault commented 4 years ago

I just had a collaborator try it out without any issue on his end, just like you. I'm using the latest carthage so this is surprising. Thanks for the follow-up, good to let auto close.

agirault commented 4 years ago

I see my comment removed the needs-info tag so I'll simply close the issue. Thank you.