Projucer keeps putting microphone permission back in

I am building my app on my iMac but am getting annoyed with this bug in the Projucer where it fails to acknowledge the fact that I’ve disabled microphone access for XCode (Mac OSX). Every time I save the project in Projucer and then return XCode, I find that it has put microphone access permissions back in.

My 2 cents:
Without microphone access no audio app will run, since macos Mojave will see any reading from an audio interface as a potential “microphone” access.
So without microphone access, you will not have audio from an interface.
If you open audio input, the microphone acces is therefore needed.

Note the microphone usage description in your 2nd pic: it talks about audio interface, not specifically about a microphone…

That’s fine with me, for now. I am only releasing the beta version of my app and I do not need to play audio through interfaces yet. I can add that later. Most of my target market are regular musicians, not sound engineers. And any technical people who want to use my app, will just have to use their normal internal cards for now.

Yes I can see that it says that, but it comes down to principle. JUCE should not be deciding whether or not my app asks for microphone permissions. I don’t want it there right now and it is annoying to see it every time I run the app.

Is it actually requesting microphone permissions?
My understanding was, that the explaining text is per default always present, but only the “Microphone access” and requesting input channels should trigger it being used. But I haven’t tested it lately.
Also there was a fix lately on develop branch, but IIRC you were in that conversation as well, so I assume you are aware of that fix.

I was in a conversation about bluetooth headphones and there was a fix for that a couple months ago. but I don’t remember hearing about a fix for this microphone issue.

Yeah it is asking for mic permissions.


And I didn’t request input channels.


Very strange, I am currently developing an App (OSX Mojave as well), and with default Projucer setup (audio app) it doesn’t ask for microphone access, but like I said, I didn’t do a thorough test.

Just updated to OSX 10.14.4, XCode 10.2.1
I use latest Projucer, but I just realise, that I have the modules as submodule, and I think there I use the JUCE master branch… maybe something changed there…

Another note, I am not using startupAudio, because I moved the player out of the MainComponent for architectural reasons:

void Player::initialise ()
    deviceManager.initialise (0, 2, nullptr, true);
    deviceManager.addChangeListener (this);

    sourcePlayer.setSource (&transportSource);
    deviceManager.addAudioCallback (&sourcePlayer);

void Player::shutDown ()
    deviceManager.removeChangeListener (this);
    sourcePlayer.setSource (nullptr);
    deviceManager.removeAudioCallback (&sourcePlayer);

I tried to reproduce with Projucer 5.4.3, 5.4.2, 5.4.1, and 5.4.0, but I couldn’t. I also looked at the source code, AFAICS there is no bug.

In your second screenshot, the last row (App Transport Security Settings) is something I have never seen before. I’m pretty sure Projucer doesn’t add that to the .plist file. Do you have something in the “Custom Plist” field in Projucer?

1 Like

Ahhhh… that’s it. One of my developers added the microphone thing to the Custom Plist and I never noticed it. Thanks for catching that.

1 Like