Cordova-plugin-googlemaps: ios build: duplicate symbols for architecture x86_x64

Created on 18 Jul 2018  路  8Comments  路  Source: mapsplugin/cordova-plugin-googlemaps

I'm submitting a ... (check one with "x")

  • [ ] question
  • [x] any problem or bug report

OS: (check one with "x")

  • [ ] Android
  • [x] iOS

cordova information: (run $> cordova plugin list)

com.googlemaps.ios 2.7.0 "Google Maps SDK for iOS"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-badge 0.8.7 "Badge"
cordova-plugin-camera 4.0.3 "Camera"
cordova-plugin-crop 0.3.1 "CropPlugin"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-google-analytics 1.8.3 "Google Universal Analytics Plugin"
cordova-plugin-googlemaps 2.3.7 "cordova-plugin-googlemaps"
cordova-plugin-inappbrowser 3.0.0 "InAppBrowser"
cordova-plugin-ionic-keyboard 2.1.2 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 1.2.1 "cordova-plugin-ionic-webview"
cordova-plugin-ios-keychain 3.0.1 "KeyChain Plugin for Cordova iOS"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-network-information 2.0.1 "Network Information"
cordova-plugin-screen-orientation 3.0.1 "Screen Orientation"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-telerik-imagepicker 2.2.2 "ImagePicker"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-x-socialsharing 5.4.1 "SocialSharing"
cordova-sqlite-storage 2.3.3 "Cordova sqlite storage plugin"
cordova-support-google-services 1.1.0 "cordova-support-google-services"
cordova.plugins.diagnostic 4.0.8 "Diagnostic"
es6-promise-plugin 4.2.2 "Promise"
phonegap-plugin-multidex 1.0.0 "Multidex"
phonegap-plugin-push 2.2.3 "PushPlugin"

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)

@ionic-native/core : 4.9.2
@ionic-native/google-maps : 4.8.2 

Current behavior:
After updating from 2.3.6 to 2.3.7 I cannot build for ios (building for android is working fine).

steps:

  1. ionic cordova plugin rm cordova-plugin-googlemaps
  2. ionic cordova plugin add cordova-plugin-googlemaps --variable ...
  3. ionic cordova build ios

Expected behavior:
Successful build for ios

Related code, data or error log (please format your code or data):

duplicate symbol _OBJC_IVAR_$_MyPluginLayer._pluginScrollView in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_MyPluginLayer._webView in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_OverflowCSS._rect in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_MyPluginLayer.__lockObject in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_CLASS_$_MyPluginLayer in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_METACLASS_$_MyPluginLayer in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_MyPluginLayer._redrawTimer in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_MyPluginLayer._executeQueue in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_MyPluginLayer._isSuspended in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_OverflowCSS._cropY in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_IVAR_$_OverflowCSS._cropX in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_CLASS_$_OverflowCSS in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
duplicate symbol _OBJC_METACLASS_$_OverflowCSS in:
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/CordovaGoogleMaps.o
    /Users/__username__/Library/Developer/Xcode/DerivedData/__appname__-gitfjinhmzwfmjadt/Build/Intermediates.noindex/__appname__.build/Debug-iphonesimulator/__appname__.build/Objects-normal/x86_64/MyPluginLayer.o
ld: 13 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
bug fixed

Most helpful comment

v2.3.8 is available. Please reinstall the plugin.
https://www.npmjs.com/package/cordova-plugin-googlemaps/v/2.3.8

All 8 comments

Likewise, it appears like the functions are defined in both files, but I think either file comes from different locations (CordovaGoogleMaps from the Google Maps SDK; the other from the plugin file, MyPluginLayer).

Yes, you are right. Different files, but both from the googlemaps plugin...

image

image

Please share your project files that reproduce your issue 100% onto GitHub

Sorry, that's not that simple as the project is a private one. I try to set up a test repository, otherwise I need to get the permission to request private support with committing to an NDA.

Without reproducible project, I won't do nothing.
Basically I don't change so much from v2.3.6 to v2.3.7
Double check your project, please

:scream:Uh, ah....

It seems I copied the code of MyPluginLayer.m into CordovaGoogleMaps.m...

v2.3.8 is available. Please reinstall the plugin.
https://www.npmjs.com/package/cordova-plugin-googlemaps/v/2.3.8

Thanks @wf9a5m75 - it's working well. Great work.

Was this page helpful?
0 / 5 - 0 ratings