Linker errors on updating to 5.3

Just a heads up or for future reference:
I’ve just updated an iOS project based on JUCE 5.1 to 5.3 and got a couple of linker “undefined symbol” errors for _kUTTagClassFilenameExtension and _UTTypeCreatePreferredIdentifierForTag. These were resolved by adding the MobileCoreServices framework.

Which module was that needed in?

FileChooser. The full message was:

Undefined symbols for architecture armv7:
  "_kUTTagClassFilenameExtension", referenced from:
      juce::FileChooser::Native::getUTTypesForWildcards(juce::String const&, juce::String&) in include_juce_gui_basics.o
  "_UTTypeCreatePreferredIdentifierForTag", referenced from:
      juce::FileChooser::Native::getUTTypesForWildcards(juce::String const&, juce::String&) in include_juce_gui_basics.o
ld: symbol(s) not found for architecture armv7

Thanks Adam!
I had the same thing happening:
Undefined symbols for architecture x86_64:
“_kUTTagClassFilenameExtension”, referenced from:
juce::FileChooser::Native::getUTTypesForWildcards(juce::String const&, juce::String&) in include_juce_gui_basics.o
“_UTTypeCreatePreferredIdentifierForTag”, referenced from:
juce::FileChooser::Native::getUTTypesForWildcards(juce::String const&, juce::String&) in include_juce_gui_basics.o
ld: symbol(s) not found for architecture x86_64

Thanks I’ll sort this out.

OK nothing needs fixing. You just need to re-save your .jucer file with the newest Projucer version. This will automatically add the MobileCoreServices.framework.

2 Likes