Skip to content

FR: Carthage support #9

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

Closed
okydk opened this issue May 17, 2017 · 101 comments
Closed

FR: Carthage support #9

okydk opened this issue May 17, 2017 · 101 comments

Comments

@okydk
Copy link

okydk commented May 17, 2017

Now that the Firebase SDKs are open source, can we then have Carthage support? 😍

*** Cloning firebase-ios-sdk
*** Checking out firebase-ios-sdk at "4.0.0"
*** Skipped building firebase-ios-sdk due to the error:
Dependency "firebase-ios-sdk" has no shared framework schemes
@morganchen12

This comment has been minimized.

@okydk

This comment has been minimized.

@soheilbm

This comment has been minimized.

@mhuusko5

This comment has been minimized.

@salqadri

This comment has been minimized.

@mhuusko5

This comment has been minimized.

@morganchen12

This comment has been minimized.

@AndrewSB

This comment has been minimized.

@morganchen12

This comment has been minimized.

@AndrewSB

This comment has been minimized.

@paulb777

This comment has been minimized.

@TofPlay

This comment has been minimized.

@paulocoutinhox

This comment has been minimized.

2 similar comments
@alokc83

This comment has been minimized.

@Davtyanag

This comment has been minimized.

@monsantovernon

This comment has been minimized.

@floriangbh

This comment has been minimized.

1 similar comment
@ghost

This comment has been minimized.

@iSevenDays

This comment has been minimized.

@paulb777

This comment has been minimized.

@paulb777
Copy link
Member

@nidegen I've seen this a few times, but not able to reproduce reliably. I suspect a Carthage race condition since Protobuf.framework is a dependency of multiple components.

Rerunning the carthage update command is a workaround.

@nidegen
Copy link

nidegen commented May 31, 2018

@paulb777 yes I have also just reupdated carthage a couple of times, but it is really a mess for our CI pipelines😬😬

are the binaries not just download only? how comes carthage has to check out dependencies there?

@paulb777
Copy link
Member

@nidegen Since Carthage doesn't do dependencies for binaries, the multiple Firebase components that depend on Protobuf.framework need to include it.

@schlingding
Copy link

schlingding commented May 31, 2018

Some frameworks are fetching version 5.0.1 and some version 5.1.0.

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** Downloading FirebaseAnalyticsBinary.framework binary at "5.0.1"
*** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
*** Downloading FirebaseMessagingBinary.framework binary at "5.1.0"
*** Downloading binary-only framework FirebasePerformanceBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
*** Downloading FirebasePerformanceBinary.framework binary at "5.0.1"
*** Downloading binary-only framework FirebaseRemoteConfigBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"
*** Downloading FirebaseRemoteConfigBinary.framework binary at "5.0.1"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" == 5.1.0

produces

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

Anyone else seeing this issue?

@nidegen
Copy link

nidegen commented May 31, 2018

@paulb777 i dont get it. if binaries have no dependencies (I already understood it that way) why is there an issue with a dependency (protobuf). To me it seems that carthage does check for dependencies after all, or performs some kind of processing of the binaries. i dont see why it should / a binary package is performing anything

@paulb777
Copy link
Member

paulb777 commented Jun 1, 2018

@nidegen The Carthage zip files for multiple Firebase components include the Protobuf.framework. If you're using two or more of those components, Carthage will attempt to do multiple copies to ./Carthage/Build/iOS/Protobuf.framework.

@schlingding Does clearing the Carthage cache make a difference - rm -rf ~/Library/Caches/org.carthage.CarthageKit

@schlingding
Copy link

schlingding commented Jun 1, 2018

@paulb777 I have tried clearing the cache and removing the Carthage folder as well. Same results. I’m on the latest version of Carthage.

Are you getting 5.1.0 when running Carthage? If so I’ll debug further.

@schlingding
Copy link

@paulb777 Ran Carthage today and now it's pulling all 5.1.0 versions. Leaving the previous comment intact in case someone else runs into the issue.

@walsht
Copy link

walsht commented Jun 8, 2018

Seeing this on "5.2.0"

Failed to write to /.../Carthage/Build/iOS/Protobuf.framework: Error Domain=NSCocoaErrorDomain Code=513 "“Protobuf.framework” couldn’t be removed because you don’t have permission to access it." UserInfo={NSFilePath=/.../Carthage/Build/iOS/Protobuf.framework, NSUserStringVariant=(
    Remove
), NSUnderlyingError=0x7faa64d60730 {Error Domain=NSPOSIXErrorDomain Code=66 "Directory not empty"}}

Only way to resolve is
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" == 5.1.0

@nidegen
Copy link

nidegen commented Jul 11, 2018

@paulb777 For the protobuf checkout bug, deleting cache with rm -rf ~/Library/Caches/org.carthage.CarthageKit actually fixes my issue, probably also yours @walsht

I run it before each carthage update

@yoiang
Copy link

yoiang commented Aug 1, 2018

I also had to manually add SystemConfiguration.framework when I was Carthage-ing Firebase Analytics, otherwise it was complaining about missing a number of SC symbols

@tbaranes
Copy link

tbaranes commented Aug 9, 2018

Hey guys! Can you add macOS support? The binary binary ".../firebase/ios/carthage/FirebaseAnalyticsBinary.json" is working perfectly for iOS, but it would even greater to have a binary link for macOS as well.

@josemssilva
Copy link

Anyone had troubles updating from 5.4 to 5.6? Missing FirebaseNanoPB and GoogleToolboxForMac, and I'm unable to build the project without those.

@paulb777
Copy link
Member

See #1701 for discussion of carthage update from a release before Firebase 5.5.0 to one after it.

@schlingding
Copy link

Firebase is releasing weeks faster than the updates to the binary files for carthage.

At the time of this post, I'm seeing the latest carthage binary references at 5.8.0 where 5.8.1, 5.9.0, and 5.10.0 have since been released.

Can updating these binary references be part of the Firebase iOS release process or are there further issues?

Please update soon so the community can take advantage of the bug fixes and enhancements.

Thank you!

@paulb777
Copy link
Member

@schlingding 5.10.0 is now available via Carthage.

See #1862 to follow the status of official Carthage support

@paulb777
Copy link
Member

Those of you interested in Firebase via Carthage may want to check out Firebase via Rome. Rome provides many of the Carthage features as well as a few additional advantages. Check out the details at https://github.com/firebase/firebase-ios-sdk/blob/master/Rome.md.

We'd love to hear any feedback in another issue.

@paulb777
Copy link
Member

Closing since Carthage is now available experimentally. We'll track making it officially supported in #1862.

@zero-tolerance0
Copy link

thanks, @paulb777 clearing carthage cache solved my issue

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests