Cocoapods: Pod installation failure on some transitive dependencies

Created on 15 Mar 2015  路  18Comments  路  Source: CocoaPods/CocoaPods

I use use_frameworks! and get the following error on pod install:

[!] The 'Pods-Beer' target has transitive dependencies that include static binaries: 
(/Users/user/Beer/Pods/Parse/Parse.framework and 
/Users/user/Beer/Pods/ParseFacebookUtils/ParseFacebookUtils.framework)

Why is that so? Can I disable frameworks for Parse only to workaround that issue? I have other user-facing pods that need frameworks for IBDesinable to work.

Most helpful comment

Since 1.3.0.beta.2 the workaround is now like this:

pre_install do |installer|
    # workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
    Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end

All 18 comments

See discussion in the original issue #2926

What is the solution to that then? I don't get it in the referred discussion.

@sarbogast you can't have the same pod linked as framework and static library at the same time. This is what happens here due to cross-dependencies.

@neonichu
I vote for force_frameworks! to ignore sub-specs and use frameworks even if sub-spec has no idea of their existence. Will this blow up? Otherwise we can pray for next two years that iOS 7 is gone and then maybe we can switch to frameworks by default.

@pronebird This is what already happens, this error is for Pods which include binaries.

The eventual solution is for those Pods to ship dynamic instead of static frameworks.

@pronebird So does that mean I can only wait for Parse to fix their Podspec somehow? Or is there anything I can do to work around that in the meantime?

I am having the same problem

@sarbogast I don't think we can do anything until vendors switch to dynamic frameworks.

The whole Facebook and Parse thing is a mess atm, ParseFacebookUtils references FacebookSDK.h which doesn't exist anymore as of version Facebook iOS 4.0.1 (it is now FBSDKCoreKit). I tried to go to pods to sort this out, but no luck it seems.

@mrowles have you had any luck making your Facebook iOS 4.0.1 pod to work? I have been struggling with that issue and cannot get the files to work at all. Seems like facebook managed to screw it up...

@andreicrisan Check out this developers issue for more information, but looks to be a fix next release:
https://developers.facebook.com/bugs/362995353893156

@sarbogast I've fixed this by downloading parse frameworks from https://parse.com/docs/downloads and add them manually

screen shot 2015-08-17 at 6 13 55 pm

I don;t use dynamics frameworks, yet I have this error.

Hi,

I am using cocoapods
1.1.0.beta.1 Latest one.

and trying to install

 platform :ios, '7.0'

 inhibit_all_warnings!

 use_frameworks!

 pod 'Firebase'
 pod 'FirebaseMessaging'
 pod 'Reachability'
 pod 'AFNetworking'

 target 'XXX_Example' do
     pod 'XXX', :path => '../'

    target 'XXX_Tests' do
     inherit! :search_paths

  end
end

[!] The 'Pods-XXX_Example' target has transitive dependencies that include static binaries: (/Users/XXX/Desktop/XXX/XXXSDK/XXX-ios/Example/Pods/FirebaseMessaging/Frameworks/FirebaseMessaging.framework)

Please let me know how can i resolve it?

thanks,

@Maheepk I was having the same issue but with CardIO. @cooler333 fix in https://github.com/CocoaPods/CocoaPods/issues/3289 seems to work fine, although I had to place it in the Podfile, not in the podspec, to make it work, but I'm not familiar with the pre_install option (let me know if there's a better way).

@sergiofraile i followed that. That fixed Dependency error but gives me
ld: warning: Auto-Linking supplied '/Users/XXX/Desktop/XXX/XXXSDK/XXX-ios/Example/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID', framework linker option at /Users/XXX/Desktop/XXX/XXXSDK/XXX-ios/Example/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID is not a dylib

thanks,

@sergiofraile

I am getting /Users/XXX/Desktop/XXX/XXXSDK/XXX-ios/Example/Pods/Headers/Private/Firebase/Firebase.h:1:9: 'FirebaseAnalytics/FirebaseAnalytics.h' file not found

to fix that i manually Added Firebase, FirebaseAnalytics, FirebaseMessaging and that creates above issue.

thanks,

just add this line into your pod file before "" target 'project name' do ""
inhibit_all_warnings!

its work for me

Since 1.3.0.beta.2 the workaround is now like this:

pre_install do |installer|
    # workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
    Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end
Was this page helpful?
0 / 5 - 0 ratings

Related issues

evermeer picture evermeer  路  3Comments

pronebird picture pronebird  路  3Comments

gerchicov-bp picture gerchicov-bp  路  3Comments

marzapower picture marzapower  路  3Comments

sonu5 picture sonu5  路  3Comments