Linker errors in a Swift project with Google Maps for iOS added via CocoaPods

I’m trying to add Google Maps SDK for iOS for a Swift project I’m working on via CocoaPods since CocoaPods now supports Swift.

Here’s my podfile.

  • google maps iOS SDK: custom icons to be used as markers
  • How can I modify OTHER_LDFLAGS via CocoaPods post-install hook?
  • Missing required icon files in build from Xcode 9
  • Current Location in Google Maps with swift
  • XCode 6 CocoaPods error : target overrides the `OTHER_LDFLAGS` build setting
  • Why is my libraries not able to expand on the CocoaPods and shows as Objective-c not Swift?
  • source 'https://github.com/CocoaPods/Specs.git'
    use_frameworks!
    platform :ios, '7.0'
    
    pod 'Google-Maps-iOS-SDK'
    

    Pod installation completes successfully and I could import the framework like this import GoogleMaps without any compilation errors.

    But then I went ahead and added a UIView and set its class to GMSMapView and added a IBOutlet to my view controller and build the project. I get the following error.

    Linker command failed with exit code 1 (use -v to see invocation)

    enter image description here

    I’ve added and used libraries written in Objective-C like MagicalRecord, MBProgressHUD on Swift projects without any issue.

    I uploaded a demo Xcode project here as well.

    Any way to resolve this?

    2 Solutions Collect From Internet About “Linker errors in a Swift project with Google Maps for iOS added via CocoaPods”

    The problem that you are facing is a combination of a bug on CocoaPods and a malformed podspec. Check this for more information.

    Feel free to use this podspec:

    https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json

    … in your Podfile as:

    pod 'Google-Maps-iOS-SDK', :podspec => "https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json"
    

    Response from a Google engineer:

    I believe this bug is now fixed in 1.10.0. As part of moving to officially supporting CocoaPods we have changed the name of the Google Maps SDK for iOS CocoaPod. Please update your Podfile like this:

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '8.3'
    use_frameworks!
    
    pod 'GoogleMaps', '1.10.0'
    

    (source of this information)

    Note:

    Nonetheless the fix above introduces a new warning, please see the following link.

    So I personally recommend you staying with pod 'Google-Maps-iOS-SDK', :podspec => "https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json" until the bug will be fixed in a newer version of the Google Maps iOS SDK, or simply silencing this warning by adding -Wl,-no_compact_unwind in build settings flags.