Skip to content

target has transitive dependencies that include static binaries #34

Closed

Description

@motizuki

Hello,

I've been trying to use the FirebaseUI pod v0.3.1 and I am getting this error when I run 'pod install'.

[!] The '******' target has transitive dependencies that include static binaries: (path../Pods/Google/Libraries/libGGLCore.a and path../Pods/Google/Libraries/libGGLSignIn.a)

This is my pod file:

platform :ios, '8.0'
use_frameworks!

target 'projectName' do
pod 'FirebaseUI', '~> 0.3'
end

Activity

  1. motizuki commented on Dec 27, 2015

    @motizuki
    Author

    Ref issue #23
    It would be great if we could fix the issue on FirebaseUI/Auth + use_frameworks! since I will need to use frameworks for further pods.

  2. asciimike commented on Dec 30, 2015

    @asciimike
    Contributor

    As mentioned in #23, we can't do anything until Google changes the way they handle their pods. You'll either have to remove use_frameworks! or use FirebaseUI/Core.

    Alternatively we can break out providers as per #26, at which point you can use providers other than Google with use_frameworks!.

  3. added this to the 0.4 milestone on Dec 30, 2015
  4. motizuki commented on Jan 2, 2016

    @motizuki
    Author

    Oh cool, I will try that.
    Thanks

  5. paulthorsteinson commented on Jan 2, 2016

    @paulthorsteinson

    I can't get any project in Xcode 7.2 to compile with the latest FirebaseUI, even if i remove use_frameworks!

  6. motizuki commented on Jan 3, 2016

    @motizuki
    Author

    Removing the use_frameworks! will add all pods as static libraries, therefore you will have to import them through the Obj-c-bridge-header file in order to use them in your code.

  7. paulthorsteinson commented on Jan 3, 2016

    @paulthorsteinson

    Thanks, totally forgot to do that after removing use_frameworks! 👍

  8. asciimike commented on Jan 14, 2016

    @asciimike
    Contributor

    Has anyone tried this on Cocoapods 1.0 (or even 0.39) yet? They seem to claim it was fixed as of 0.39 (http://blog.cocoapods.org/CocoaPods-0.39/)

  9. motizuki commented on Jan 14, 2016

    @motizuki
    Author

    I have tried on pod -v 1.0.0.beta.2, and the error still persists.
    [!] The 'Pods-...' target has transitive dependencies that include static binaries: (../Pods/Google/Libraries/libGGLCore.a and ../Pods/Google/Libraries/libGGLSignIn.a)

  10. asciimike commented on Jan 14, 2016

    @asciimike
    Contributor

    Ok, thanks for letting us know, we'll do some more digging :)

    On a related note, I wish their docs gave a little more info on what they did or how the feature worked...

  11. eeschimosu commented on Feb 5, 2016

    @eeschimosu

    +1. I'm running in to the same problem. Trying to make a new project from FirebaseUI and add the static libraries using CocoaPods in order to simplify my life with authing using Firebase. Is this viable?

  12. asciimike commented on Feb 5, 2016

    @asciimike
    Contributor

    @eeschimosu Swift or Obj-C, and which version of iOS are you trying to use?

  13. eeschimosu commented on Feb 5, 2016

    @eeschimosu

    @mcdonamp I would go for Obj-C since most of the job is already done, but I would love a Swift version of this. I am trying to use it from iOS 8.4 to 9.2.1

  14. eeschimosu commented on Feb 5, 2016

    @eeschimosu

    I've removed the Google static dependencies and created this Pod: https://github.com/eeschimosu/FireUInoGoogle. It's useful if you don't want or need the Google Auth.

  15. asciimike commented on Feb 8, 2016

    @asciimike
    Contributor

    Yeah, it's an issue of use_frameworks not being compatible with Google pods (which are shipped as static libs). Since we try to coerce our pod into being a framework, but the Google pod can't be, Cocoapods freaks out... We could support Carthage (which would fix this since it's just including the libs and their dependencies without the Cocoapods magic), or see about fixing some of the Google pods issues. The real issue here is that iOS 7 can't have dynamic frameworks, so if you're a library/framework developer trying to support 7-9, things get a little tricky :/

    Glad you got it working without Google, though it's sad that's what had to happen. If you're interested in helping out more, you could work on #26, which makes each provider it's own subspec, so you don't have to maintain FireUInoGoogle, but rather developers could just choose to not import FirebaseUI/GoogleAuth.

  16. codemodouk commented on Feb 18, 2016

    @codemodouk

    Hi @motizuki,

    Firstly, apologies, I'm a bit new to Xcode and Swift, however, I'm really keen to try out Firebase and FirebaseUI.

    Removing the use_frameworks! will add all pods as static libraries, therefore you will have to import them through the Obj-c-bridge-header file in order to use them in your code.

    I've followed the instructions given to add the pods as static libraries by removing the use_frameworks! statement in the Podfile. I've also added lines into my objc bridging header file like so:

    #import "FirebaseUI/FirebaseArray.h" #import "FirebaseUI/FirebaseAppDelegate.h" ...etc...

    However, I still get a No Such Module 'FirebaseUI' when I attempt to import it into my Swift app.

    Can you provide any guidance on how to get this working?

    Thanks

  17. asciimike commented on Feb 18, 2016

    @asciimike
    Contributor

    @motizuki You should always add the umbrella header #import "FirebaseUI/FirebaseUI.h which should pull in everything necessary to run FirebaseUI (I need to check if it's properly done for the new Auth stuff--I have a feeling it isn't). EDIT: Well, look at that--I got rid of it when we added Auth. Anyways, the above advice is useful when people provide it for you ;)

    The thing that I assume is missing is the module.modulemap, which (in most cases) takes the Umbrella header and wraps it like so:

    framework module FirebaseUI {
        umbrella header "FirebaseUI.h" // except we don't have one >.<
    
        header "FirebaseArray.h" // and all other headers
    
        export *
        module * { export * }
    }
    

    The modulemap is typically generated through Cocoapods, but is either not being created, or is empty due to the lack of an umbrella header. You can modify the modulemap with the new stuff manually to try it out while we work to get some reasonable fixes.

  18. codemodouk commented on Feb 20, 2016

    @codemodouk

    Thanks Mike, I will keep an eye out for the fix.

  19. asciimike commented on Feb 22, 2016

    @asciimike
    Contributor

    Hey folks! 0.3.2 added support for per-provider subspecs, so at least now you can pick and choose which providers to install, which means that this bug is only a problem if you desire to use Google authentication (as it's a limit of Google SignIn, rather than FirebaseUI). I'll be closing it since it's "solved" in the general case, and developers should know how to deal with it when using Google SignIn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions