iOS build fails: ld: 191 duplicate symbols for architecture arm64

Hello,
I am getting the duplicate symbols error, when trying to do an ios build. The cordova-plugin-console has been removed. I can create an iOS build for a new project. I can also create an iOS build for a new project when it has the same package.json file as the project with the build that fails. I have added and removed the platform many times.

Here is the last part of the error message:

duplicate symbol OBJC_METACLASS$_GCDWebServerStreamedResponse in:
/Users/ptangen/Library/Developer/Xcode/DerivedData/VersaMed-epqygypepiwhdwggwesytxwaoxpb/Build/Intermediates.noindex/ArchiveIntermediates/VersaMed/IntermediateBuildFilesPath/VersaMed.build/Debug-iphoneos/VersaMed.build/Objects-normal/arm64/GCDWebServerStreamedResponse-4E83BA1E4CB49ABD.o
/Users/ptangen/Library/Developer/Xcode/DerivedData/VersaMed-epqygypepiwhdwggwesytxwaoxpb/Build/Intermediates.noindex/ArchiveIntermediates/VersaMed/IntermediateBuildFilesPath/VersaMed.build/Debug-iphoneos/VersaMed.build/Objects-normal/arm64/GCDWebServerStreamedResponse-3CA0A943E48E5960.o
ld: 191 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **

The following build commands failed:
Ld /Users/ptangen/Library/Developer/Xcode/DerivedData/VersaMed-epqygypepiwhdwggwesytxwaoxpb/Build/Intermediates.noindex/ArchiveIntermediates/VersaMed/InstallationBuildProductsLocation/Applications/VersaMed.app/VersaMed normal arm64
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/ptangen/Development/versamed/platforms/ios/cordova/build-debug.xcconfig,-workspace,VersaMed.xcworkspace,-scheme,VersaMed,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,VersaMed.xcarchive,archive,CONFIGURATION_BUILD_DIR=/Users/ptangen/Development/versamed/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/Users/ptangen/Development/versamed/platforms/ios/build/sharedpch

[ERROR] An error occurred while running cordova build ios (exit code 1).

Here is the package.json file:

{
“name”: “cemsApp”,
“version”: “0.0.1”,
“author”: “Ionic Framework”,
“homepage”: “http://ionicframework.com/”,
“private”: true,
“scripts”: {
“clean”: “ionic-app-scripts clean”,
“preinstall”: “./switch-to-preprod.sh”,
“build”: “ionic-app-scripts build”,
“lint”: “ionic-app-scripts lint”,
“ionic:build”: “ionic-app-scripts build”,
“ionic:serve”: “ionic-app-scripts serve”
},
“dependencies”: {
"@angular/common": “5.0.3”,
"@angular/compiler": “5.0.3”,
"@angular/compiler-cli": “5.0.3”,
"@angular/core": “5.0.3”,
"@angular/forms": “5.0.3”,
"@angular/http": “5.0.3”,
"@angular/platform-browser": “5.0.3”,
"@angular/platform-browser-dynamic": “5.0.3”,
"@ionic-native/app-version": “^4.4.2”,
"@ionic-native/device": “^4.1.0”,
"@ionic-native/file": “^4.2.1”,
"@ionic-native/core": “4.4.0”,
"@ionic-native/splash-screen": “4.4.0”,
"@ionic-native/status-bar": “4.4.0”,
"@ionic/storage": “2.1.3”,
“angular2-signaturepad”: “^2.6.1”,
“cordova-android”: “6.3.0”,
“cordova-ios”: “4.5.4”,
“cordova-plugin-app-version”: “^0.1.9”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-device”: “^1.1.7”,
“cordova-plugin-file”: “^4.3.3”,
“cordova-plugin-splashscreen”: “^4.1.0”,
“cordova-plugin-statusbar”: “^2.3.0”,
“cordova-plugin-whitelist”: “^1.3.3”,
“cordova-plugin-wkwebview-engine”: “git+https://github.com/ionic-team/cordova-plugin-wkwebview-engine.git”,
“file”: “^0.2.2”,
“font-awesome”: “^4.7.0”,
“ionic-angular”: “3.9.2”,
“ionic-native”: “^2.9.0”,
“ionic-plugin-keyboard”: “^2.2.1”,
“ionic2-auto-complete”: “^1.6.0-alpha”,
“ionic2-mask-directive”: “^1.0.3”,
“ionicons”: “3.0.0”,
“json-logic-js”: “^1.2.1”,
“lie”: “^3.1.1”,
“ng2-pdf-viewer”: “^1.1.5”,
“pouchdb”: “^6.3.4”,
“rxjs”: “5.5.2”,
“sw-toolbox”: “3.6.0”,
“zone.js”: “0.8.18”,
“cordova-plugin-ionic-webview”: “^1.1.16”,
“webpack”: “^3.10.0”
},
“devDependencies”: {
"@ionic/app-scripts": “3.1.5”,
“typescript”: “2.4.2”
},
“description”: “Versamed”,
“cordova”: {
“plugins”: {
“cordova-plugin-whitelist”: {},
“cordova-plugin-file”: {},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-device”: {},
“cordova-plugin-statusbar”: {},
“ionic-plugin-keyboard”: {},
“cordova-plugin-app-version”: {},
“cordova-plugin-ionic-webview”: {}
},
“platforms”: [
“ios”
]
},
“config”: {
“ionic_copy”: “./config/copy.config.js”,
“ionic_sass”: “./config/sass.config.js”
}
}

I have tried eliminating the dependencies and plugins one by one to see if that would allow the build to run, but no luck.

Any help would be appreciated.

Paul

What is your ionic info output?
What is your ionic cordova plugins list output?

Hi Sujan,
Thanks for the reply. here is the Ionic Info:

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

global packages:

cordova (Cordova CLI) : 7.1.0 

local packages:

@ionic/app-scripts : 3.1.5
Cordova Platforms  : ios 4.5.4
Ionic Framework    : ionic-angular 3.9.2

System:

Android SDK Tools : 26.1.1
ios-deploy        : 1.9.2 
ios-sim           : 6.0.0 
Node              : v8.6.0
npm               : 5.5.1 
OS                : macOS Sierra
Xcode             : Xcode 9.2 Build version 9C40b 

Environment Variables:

ANDROID_HOME : /usr/local/share/android-sdk

Misc:

backend : pro

and the list of plugins:

cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-device 1.1.7 "Device"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-ionic-webview 1.1.16 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.3.0 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-wkwebview-engine 1.1.6 "Cordova WKWebView Engine"
ionic-plugin-keyboard 2.2.1 “Keyboard”

What do you think?

Paul

I read here that some one found plugins were conflicting.

cordova-plugin-ionic-webview
and
cordova-plugin-wkwebview-engine

look similar, so I removed one and the build worked!!! Then I added it again, just to see and the build still works. I am not sure what is going on, but happy the build is running again.

Thanks for your help.

Paul

Yep, those two plugins shouldn’t really be installed at the same time as the ionic-webview one is actually a enhanced version of the other one.