'The 'Pods' target has transitive dependencies that include static binaries' when installing GCM
Asked Answered
N

6

22

I'm trying to install Google Cloud Messaging for my iOS application (using swift). I've added it to my Podfile like so:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.2'
use_frameworks!

target 'Project' do
    pod 'Alamofire', '~> 1.2'
    pod 'Google/CloudMessaging'
end

target 'ProjectTests' do

end

Now when I try to install the dependencies, I get an error (see below). It worked fine before I added GoogleCloudMessaging. I tried to make a new project and add it there instead to see if it worked, and I got the same error.

Analyzing dependencies
Downloading dependencies
Installing Alamofire (1.2.3)
Installing GGLInstanceID (1.0.0)
Installing Google (1.0.7)
Installing GoogleCloudMessaging (1.0.3)
Installing GoogleInterchangeUtilities (1.0.0)
Installing GoogleNetworkingUtilities (1.0.0)
Installing GoogleSymbolUtilities (1.0.0)
Installing GoogleUtilities (1.0.1)
[!] The '<Project name>' target has transitive dependencies that include static binaries: (/Users/User/Documents/Test/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a, /Users/User/Documents/Test/Pods/Google/Libraries/libGGLCloudMessaging.a, /Users/User/Documents/Test/Pods/Google/Libraries/libGGLCore.a, /Users/User/Documents/Test/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a, /Users/User/Documents/Test/Pods/GoogleInterchangeUtilities/Libraries/libProtocolBuffers.a, /Users/User/Documents/Test/Pods/GoogleNetworkingUtilities/Libraries/libGTMSessionFetcher_full.a, /Users/User/Documents/Test/Pods/GoogleNetworkingUtilities/Libraries/libGTMSessionFetcher_core.a, /Users/User/Documents/Test/Pods/GoogleSymbolUtilities/Libraries/libGSDK_Overload.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_iPhone.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_core.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_UIFont+LineHeight.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_SystemVersion.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_StringEncoding.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_RoundedRectPath.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_Regex.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_NSStringXML.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_NSStringHTML.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_NSScannerJSON.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_NSDictionary+URLArguments.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_KVO.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_GTMURLBuilder.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_DebugUtils.a, /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTM_AddressBook.a, and /Users/User/Documents/Test/Pods/GoogleUtilities/Libraries/libGTMStackTrace.a)

Any idea how I can fix this? Would it be possible to install GCM without Cocoapods?

Napalm answered 18/6, 2015 at 8:59 Comment(1)
Actually for me, I was running an older version of CocoaPods. Then updated it using gem install cocoapods. That resolved my issue. Please have a look at https://mcmap.net/q/589423/-ios-pod-install-gcm/…Rimose
D
7

Update

With Cocoapods V 0.38.2 it is now possible to use GMC, or any other Objective-C frameworks with Swift frameworks like Alamofire

Make sure that you use use_frameworks! in the podfile

# Uncomment this line to define a global platform for your project
# platform :ios, '8.2'
use_frameworks!

target 'Project' do
    pod 'Google'
    pod 'Google/CloudMessaging'
    pod 'Alamofire'
end

target 'ProjectTests' do

end

Old Answer

I'm using a Swift project too and i'm only using Objective-C frameworks, because Swift & Objective-C frameworks didn't work for me yet.

Try install GCM only without use_frameworks! and without the Alamofire framework (written in Swift)

# Uncomment this line to define a global platform for your project
# platform :ios, '8.2'

target 'Project' do
    pod 'Google'
    pod 'Google/CloudMessaging'
end

target 'ProjectTests' do

end

I ran into some problems when I'm importing GCM in the bridging header file. I'm curious if you encounter the same problems.

Solution for Google Cloud Messaging when the BridingHeader or GGLInstanceIDDelegate is not working, is to install 'Google' pod 'Google'

Demitria answered 19/6, 2015 at 8:9 Comment(5)
Removing Alamofire and the us_framework! tag did indeed fix the issue. Did you have any fix for that? Otherwise I'll just add Alamofire manually.Napalm
For now i don't have an solution for that problem. It seems that Cocoapods is not supporting Objective-C and Swift frameworks at the same time https://mcmap.net/q/589424/-how-to-use-cocoapods-in-a-swift-framework. At least, it is not working for me. I am using Alamofire and other swift frameworks manually for now.Demitria
CocoaPods supports Swift and Objective-C frameworks just fine. The real issue is Google's pods not supporting being built as a framework in the first place, as mentioned by @maleandr.Civies
I have the same problem with google analytics and flurry with alamofire. has anyone found a way to use them both from cocoapods?Superaltar
@Esq update cocoapods to V0.38.2 and you're able to use Google Objective-C frameworks with Swift frameworksDemitria
J
3

I removed the use_frameworks! from PodFile and it's working as expected.

Juvenescent answered 20/7, 2022 at 7:30 Comment(0)
C
2

I met same problem with Google/Analytics pod.

This issue may be resolved in the latest version of CocoaPods.

See this: https://github.com/CocoaPods/CocoaPods/issues/3194

Chantry answered 21/7, 2015 at 14:55 Comment(3)
@TobiMcNamobi sorry, I thought same and I tried, but I could not add a comment due to my reputation is low...Chantry
This issue seems to have been fixed in the newest version of CocoaPods 0.38.2. Just run a gem install cocoapods to get latest version.Gilmore
@SatoshiSuzuki this answer is being discussed on meta.Mckenney
S
1

There is problem with Google/CloudMessaging pod itself. This pod cannot be build as framework, because of some static dependencies. You can try Carthage to build you swift dependencies.

Serpigo answered 29/6, 2015 at 5:4 Comment(0)
M
1

I had a similar problem. My pod was 0.37.2 . I updated to 0.38.2 as mentioned in https://github.com/googlesamples/google-services/issues/22. got it solved .

Machado answered 16/9, 2015 at 6:39 Comment(0)
P
-2

Remove the pod from which are showing in warning and issue gona solve

Pythagoras answered 28/1, 2020 at 13:21 Comment(1)
Hi Ritesh and welcome to SO. Please clarify the reasoning behind your answer.Kemppe

© 2022 - 2024 — McMap. All rights reserved.