@leehu you need to provide more details and context.
If you’ve used JUCE in the first place and just wanna have App of your plug-in as an iOS App. with AUv3 ticketed and iOS Target from Projucer you should get it up and running pretty quickly.
Hi, I’ve added the AUv3 target and have progressed further, but get these few unresolveds at the link stage:
“OBJC_CLASS_NSAppleScript", referenced from:
objc-class-ref in libMIDISynthLib.a(juce_core.o)
"_OBJC_CLASS__NSWorkspace”, referenced from:
objc-class-ref in libMIDISynthLib.a(juce_core.o)
"_NSApp", referenced from:
juce::Process::isForegroundProcess() in libMIDISynthLib.a(juce_core.o)
juce::Process::makeForegroundProcess() in libMIDISynthLib.a(juce_core.o)
juce::Process::hide() in libMIDISynthLib.a(juce_core.o)
"_CreateTextEncoding", referenced from:
juce::String::convertToPrecomposedUnicode() const in libMIDISynthLib.a(juce_core.o)
"_CreateUnicodeToTextInfo", referenced from:
juce::String::convertToPrecomposedUnicode() const in libMIDISynthLib.a(juce_core.o)
"_ConvertFromUnicodeToText", referenced from:
juce::String::convertToPrecomposedUnicode() const in libMIDISynthLib.a(juce_core.o)
"_DisposeUnicodeToTextInfo", referenced from:
juce::String::convertToPrecomposedUnicode() const in libMIDISynthLib.a(juce_core.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
@leehu this builds AUv3 which is an App that is also capable of running within hosts.
So you’ll have a standalone app and also it will be available with AUv3 supported hosts*.
One side note, this limits your iOS targets and as far as I remember will be supported only on modern iOS devices. (for example my iPad 2 doesn’t support AUv3 even though latest iOS 9.x DID support AUv3).
I’ve just quickly created an audio application (rather than plugin) and built this for iOS and it shows up on the simulator straight away, so it looks like it’s something to do with building the AUv3 which isn’t showing up as an app…
Adding the AUv3 target requires me to change the OSX version for building the VST to 10.11 - won’t this restrict me from delivering to 10.8-10.10 users or does this not affect VST?
I’m also getting lots of these warning since adding the AUv3 and standalone targets:
ld: warning: direct access in function ‘juce::LeakedObjectDetector<juce::OwnedArray<Preset, juce::DummyCriticalSection> >::getCounter()’ from file ‘/Users/lee/Development/cpp/JUCE/Projects/MIDISynth-Circuit/Builds/MacOSX/build/Debug/libMIDISynth-Circuit.a(PluginProcessor.o)’ to global weak symbol ‘juce::LeakedObjectDetector<juce::OwnedArray<Preset, juce::DummyCriticalSection> >::getCounter()::counter’ from file ‘/Users/lee/Development/cpp/JUCE/Projects/MIDISynthLib/Builds/MacOSX/build/Debug/libMIDISynthLib.a(AudioProcessor_Base.o)’ means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
Thanks for pointing this out. I’ve now added code to the Projucer so that it will always compile the AUv3 target (and only the AUv3 target) with at least the 10.11 SDK (or newer if you selected something newer in the Projucer). The other targets (VST, VST3, …) will remain unaffected and compile with the deployment target selected in the Projucer. You will need to re-build the Projucer for this to work.
If your are targeting an older OS X version (for example 10.6) you’ll also need to be sure that the C++ library is the GNU C++ library:
I think this might have been missed (I did post a few questions at the same time) - any thoughts on this when adding the standalone target? I can’t see an obvious was for public access to the MIDIMessageCollector instance… thx
Hi, no - its an instance that’s being created by the AudioProcessorPlayer instance that’s in the StandalonePluginHolder. Just not sure how to get at this from inside my plugin…?