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

Pod installation failure on some transitive dependencies #3267

Closed
pronebird opened this Issue Mar 15, 2015 · 18 comments

Comments

Projects
None yet
@pronebird

pronebird commented Mar 15, 2015

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.

@pronebird pronebird changed the title Pod failure on some transitive dependencies Pod installation failure on some transitive dependencies Mar 15, 2015

@neonichu

This comment has been minimized.

Member

neonichu commented Mar 15, 2015

See discussion in the original issue #2926

@neonichu neonichu closed this Mar 15, 2015

@sarbogast

This comment has been minimized.

sarbogast commented Mar 27, 2015

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

@pronebird

This comment has been minimized.

pronebird commented Mar 27, 2015

@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.

@neonichu

This comment has been minimized.

Member

neonichu commented Mar 27, 2015

@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.

@sarbogast

This comment has been minimized.

sarbogast commented Mar 27, 2015

@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?

@zirinisp

This comment has been minimized.

zirinisp commented Mar 30, 2015

I am having the same problem

@pronebird

This comment has been minimized.

pronebird commented Mar 30, 2015

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

@mrowles

This comment has been minimized.

mrowles commented Apr 8, 2015

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.

@andreicrisan

This comment has been minimized.

andreicrisan commented Apr 21, 2015

@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...

@mrowles

This comment has been minimized.

mrowles commented Apr 21, 2015

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

@sergdort

This comment has been minimized.

sergdort commented Aug 17, 2015

@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

@krzyzanowskim

This comment has been minimized.

krzyzanowskim commented Dec 13, 2015

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

@Maheepk

This comment has been minimized.

Maheepk commented Jul 25, 2016

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,

@sergiofraile

This comment has been minimized.

sergiofraile commented Jul 25, 2016

@Maheepk I was having the same issue but with CardIO. @cooler333 fix in #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).

@Maheepk

This comment has been minimized.

Maheepk commented Jul 25, 2016

@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,

@Maheepk

This comment has been minimized.

Maheepk commented Jul 25, 2016

@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,

@Hammad345

This comment has been minimized.

Hammad345 commented Mar 6, 2017

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

its work for me

@danielReporty

This comment has been minimized.

danielReporty commented Dec 27, 2017

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment