firebase / geofire-objc

GeoFire for Objective-C - Realtime location queries with Firebase
MIT License
436 stars 180 forks source link

geofire swift import no module found #20

Closed Now2407 closed 9 years ago

Now2407 commented 9 years ago

i tried using Cocoa pods and manual installing the frameworks but get the error "no module found" when i try to import it in my swift Project

screen shot 2015-08-29 at 5 32 10 pm

I have no idea what is wrong with it?!

jdimond commented 9 years ago

Do you have the contents of the Podfile you used?

alvivi commented 9 years ago

Same here. There is no way to import GeoFire (using XCode 7 beta 6 and manual install, because there is no Carthage support)

asciimike commented 9 years ago

@alvivi or @Now2407 have either of you tried use_frameworks! as an option in your Podfile?

I've got the following Podfile working to import GeoFire:

platform :ios, '8.0'
use_frameworks!

pod 'GeoFire', '~>1.1'

target 'ProjectName' do

end

Make sure you're using a version of Cocoapods > 0.36 (as I believe it was introduced there). We're working on fixing issues with dynamic libs in iOS 8+ as well as module maps to better support Swift.

If this is confirmed that use_frameworks! solves the issue, I'll update the README with this info.

alvivi commented 9 years ago

@mcdonamp moving to cocoapods is not a solution. We managed to rebuild the project and compile a proper binary. We ported the project to Carthage, here is the repository.

asciimike commented 9 years ago

@alvivi Ah, interesting. We've considered Carthage support, but haven't seen many requests for it. Is there a reason you prefer Carthage to Cocoapods? If there are compelling reasons, we'd be more inclined to officially support it.

alvivi commented 9 years ago

@mcdonamp well, try to create a multi-target project using a bunch of bleeding edge swift 2.0 libraries using cocopods. Complex projects tend to have multiple targets, multiple builds schemes, build configurations, etc. Cocoapods modify your project (and workspace), adding to them an extra layer of complexity. Carthage is plain simple.

asciimike commented 9 years ago

@alvivi yep, agree with that, which is why we're investigating Carthage support (it's definitely increased in our queue since Swift 2.0 and issues with Cocoapods not supporting dependencies well). I know Cocoapods is working on better Swift support, but they have a ways to go. In our mind, Carthage is the power tool, while Cocoapods is the solution that works in ~90% of the situations with half of the effort.

I'll download Beta 6 and give it a shot to see what I can find. In the meantime, feel free to submit a PR converting Geofire to Carthage and we're happy to review and merge. Sounds like it could benefit a core group of folks like yourself :)

sammy-SC commented 9 years ago

@mcdonamp I would like to see Carthage support as well. are PRs welcome?

asciimike commented 9 years ago

@sammy-SC PR's are always welcome :+1:

sammy-SC commented 9 years ago

Hello @mcdonamp,

I have been investigating Carthage support for Geofire however I came to a conclusion that without Firebase (Geofire's dependency) supporting Carthage it is not possible for Geofire to support Carthage without Firebase being included in git.

https://github.com/Carthage/Carthage/issues/486 for further information on Carthage <-> Cocoapods

asciimike commented 9 years ago

@sammy-SC thanks for the heads up. Yes, it's difficult that Firebase is currently closed source, but since we provide the framework (which is ultimately what Carthage provides), it ends up doing the same thing. This is what it looks like @alvivi ended up doing--just pulling down the framework and then using it later. Not as flexible as full Carthage support though :/

I think another challenge with Carthage is that it's iOS 8+ only, since it's dynamic frameworks only. iOS 7 still accounts for ~30-35% of the market.

I think we'll be holding off for a little more (given some of the above reasons), but it's something we're definitely still interested in, as Carthage offers significantly more flexibility than Cocoapods.