storesafe/cordova-sqlcipher-adapter

Duplicated symbols [iOS platform version]

mgarciaibanez opened this issue · 1 comments

Hi.

We are developing an app using your plugin and PSPDFKit.

When we try to debug the app during compilation it returns duplicated symbol, here you have the error:

duplicate symbol OBJC_CLASS$_PSPDFThreadSafeMutableDictionary in:
/Users/mgarciaibanez/Library/Developer/Xcode/DerivedData/MyProject-cnnzydqnyttpqmhgwuxuoyvuqcgn/Build/Intermediates.noindex/MyProject.build/Debug-iphoneos/MyProjecte.build/Objects-normal/arm64/PSPDFThreadSafeMutableDictionary.o
MyProject/Plugins/es.efl.pdfviewer/PSPDFKit.framework/PSPDFKit(PSPDFThreadSafeMutableDictionary.o)
duplicate symbol OBJC_IVAR$_PSPDFThreadSafeMutableDictionary._dictionary in:
/Users/mgarciaibanez/Library/Developer/Xcode/DerivedData/MyProject-cnnzydqnyttpqmhgwuxuoyvuqcgn/Build/Intermediates.noindex/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/arm64/PSPDFThreadSafeMutableDictionary.o
Lefebvre mobile/Plugins/es.efl.pdfviewer/PSPDFKit.framework/PSPDFKit(PSPDFThreadSafeMutableDictionary.o)
duplicate symbol OBJC_IVAR$_PSPDFThreadSafeMutableDictionary._lock in:
/Users/mgarciaibanez/Library/Developer/Xcode/DerivedData/MyProject-cnnzydqnyttpqmhgwuxuoyvuqcgn/Build/Intermediates.noindex/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/arm64/PSPDFThreadSafeMutableDictionary.o
MyProject/Plugins/es.efl.pdfviewer/PSPDFKit.framework/PSPDFKit(PSPDFThreadSafeMutableDictionary.o)
duplicate symbol OBJC_METACLASS$_PSPDFThreadSafeMutableDictionary in:
/Users/mgarciaibanez/Library/Developer/Xcode/DerivedData/MyProject-cnnzydqnyttpqmhgwuxuoyvuqcgn/Build/Intermediates.noindex/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/arm64/PSPDFThreadSafeMutableDictionary.o
MyProject/Plugins/es.efl.pdfviewer/PSPDFKit.framework/PSPDFKit(PSPDFThreadSafeMutableDictionary.o)
ld: 4 duplicate symbols for architecture arm64

Would it be possible to have a versión without these files or do you have any suggestion about how to get rid of these files before executing cordova prepare ios?

Thanks a lot

My apologies for the delay and thanks for reporting. Probably the best solution is to use https://www.npmjs.com/patch-package if you can, otherwise maintain your own fork until I sort this one out.

I am thinking of a couple possible solutions on the sql* plugin side:

  • rename the class to avoid the name clash
  • completely remove the use of PSPDFThreadSafeMutableDictionary, alternative solutions:
    • use @synchronized guards on openDBs object access
    • rework the sql* plugin implementation to keep the openDBs access in the main thread