chat-sdk / chat-sdk-ios

Chat SDK iOS - Open Source Mobile Messenger
http://sdk.chat
Other
915 stars 274 forks source link

Pod installation issue "target has transitive dependencies" #11

Closed maizer999 closed 7 years ago

maizer999 commented 7 years ago

Dear When i tried to install pod for the chat on my project i get bellow error

[!] The 'Pods-Chat' target has transitive dependencies that include static binaries: (/Users/../Pods/Google/Frameworks/GGLCore.framework, /Users/../Pods/Google/Frameworks/GGLSignIn.framework, and /Users/../Pods/TwitterKit/TwitterKit.framework)

bensmiley commented 7 years ago

Hi,

Could you provide me with a copy of your Podfile?

Thanks,

Ben

simonsmiley64 commented 7 years ago

Hi @maizer999,

Are you trying to add Chat SDK to a Swift project?

I found a potential guide here that might help your problem.

If you could post more details on your project and podfile we can identify the problem more easily.

Simon

jimijon commented 7 years ago

Same problem here.

`source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9'

workspace 'TwoBitTrader' project 'TwoBitTrader'

inhibit_all_warnings!

use_frameworks!

target 'TwoBitTrader' do pod 'Alamofire' pod 'Sync' pod 'PKHUD_Swift_3' pod 'SwiftyJSON' pod 'Siren' pod 'Groot' pod 'Charts' pod 'BigBoard', :path => '~/Documents/Development/BigBoard' pod "ChatSDK", :path => "."

pod "ChatSDKModules/Backendless", :path => "./ChatSDKModules"

pod "MIBadgeButton-Swift", :git => 'https://github.com/mustafaibrahim989/MIBadgeButton-Swift.git', :branch => 'master' pod 'PopupDialog', '~> 0.5' pod 'Bolts'

pod 'Webhose', :git => 'https://github.com/tiagomartinho/webhose-cocoa'

pod 'Fabric'

pod 'TwitterKit'

end`

error:

[!] The 'Pods-TwoBitTrader' target has transitive dependencies that include static binaries: (/Users/James/Documents/Development/INDX420/Pods/Google/Frameworks/GGLCore.framework, /Users/James/Documents/Development/INDX420/Pods/Google/Frameworks/GGLSignIn.framework, and /Users/James/Documents/Development/INDX420/Pods/TwitterKit/TwitterKit.framework)

bensmiley commented 7 years ago

This is because you're using the use_frameworks! flag. Some of the dependencies of the Chat SDK won't work if that flag is enabled - from memory they are the Google and Twitter frameworks. You should either remove the use_frameworks! flag or try to implement the workaround detailed here.

jimijon commented 7 years ago

Well I can’t take off that flag as I have a dozen frameworks.

I can copy the Google code over, but how do I get around the cocoapods error?

On Feb 18, 2017, at 3:51 PM, bensmiley notifications@github.com wrote:

This is because you're using the use_frameworks! flag. Some of the dependencies of the Chat SDK won't work if that flag is enabled - from memory they are the Google and Twitter frameworks. You should either remove the use_frameworks! flag or try to implement the workaround detailed here https://github.com/googlemaps/google-maps-ios-utils/issues/23.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/chat-sdk/chat-sdk-ios/issues/11#issuecomment-280877733, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7StRGffaNHzYbb7tW8TqQ8pqW-N11kks5rd2fGgaJpZM4L8EvI.

bensmiley commented 7 years ago

The problem is that any libraries that support iOS 7 will be built as static libraries so they won't work with the use_frameworks! flag.

In most cases even in Swift based projects, the use_frameworks! flag isn't necessary (see the Chat SDK Swift example). But if you do need it for your project, you should remove the dependencies to the static libraries from the podspec files of the Chat SDK. You should then drag these frameworks into your Xcode project manually.

jimijon commented 7 years ago

Ok,,, got everything.... I think but now it just can't find the FBCore header. I looked at all my search path headers and frameworks... all looks Ok. Any thoughts about this?

jimijon commented 7 years ago

Ok, removed FB from the pod spec, and did manual install. That worked. But now I get a FirebaseAnalytics issue. argh.

bensmiley commented 7 years ago

What kind of error are you getting?

jimijon commented 7 years ago

There are way too many dependency issues for me at this point. I need to get a beta out, so, went with a simple Firebase Chat controller. All the pods worked and I was able to get Chat working good enough for demo purposes. I would like to later, use your SDK, but we will see. I will probably wait until ALL frameworks work with pod use-Frameworks! flag set.

bensmiley commented 7 years ago

I managed to fix this issue. In the next few days we will release a new version which moves the social login dependencies to a separate pod. That will make it much easier to remove them if they are not needed. It will also enable use_frameworks!.

I'd check the repository early next week to get the new version.

jimijon commented 7 years ago

Great news and great work. I will look forward to it next week.

jimijon commented 7 years ago

Any progress?

bensmiley commented 7 years ago

You should checkout the use_frameworks_beta_1 branch. I found that the issues were caused by the way that Firebase have setup their pods.

The solution was to compile the Firebase frameworks manually using Carthage and then add them using the vendored_framework attribute in the podfile.

You'll see that in the new version, we have had to change the project structure a little - we broke up the core library into separate pods rather than using subspecs. You'll have to rename your imports accordingly.

Currently, the modules don't work with this version. We will need to do some additional work to get them supported. We also split the social login into a separate pod.

By the end of the week we're hoping to have a final version ready.

jimijon commented 7 years ago

Sounds like good progress. I still have time as I am deep into working on other features and also trying to get my little app out the door that doesn't use any chat. I will however, be monitoring this as I expect to come back to some serious chat work in about a month. Thanks for the work.

jimijon commented 7 years ago

Ok - I am coming back to this and I noticed you now have 3 use_frameworks branches. Which one are you recommending now?

bensmiley commented 7 years ago

I would recommend use_frameworks_beta_x where x is the highest number. Currently 1 but soon to be 2.

bensmiley commented 7 years ago

We have now merged the use_frameworks version of the project with the master branch so I'm closing this issue. If you need to use the old non-frameworks version of the project you can by using the master_no_frameworks branch.