Accept Incoming Network Connections Dialog (OS X)

Every time my app starts, it asks the user “Do you want the application x to accept incoming network connections?”

My app and frameworks are signed. The firewall has checked “Automatically allow signed software to receive incoming connections”.

My app checks for updates on the web, uses IPCSocket to communicate with other copies locally and registers as a Bonjour server via an MBS plugin.

Is there a way not to have this dialog asked every single launch for my users? (No, I can’t ask them to configure their firewall, alas.)

Why you can’t ask to configure the firewall?
I believe if a user has the firewall enabled, it must be able to configure it.
Or turn the firewall off.

Because I have tens of thousands of users and only a fraction of them know what a firewall is.

That being said, even if I add my app to the firewall, it still asks for permissions on every launch.,

Yours isn’t the only program that does that… Seems like something is wonky with the firewall…

Please sign your app to avoid dialog.
it will show if you use ServerSocket.Listen method.

@shao sean I don’t see this dialog with most commercial software

@Christian Schmitz The app is signed which is why I find this odd. Verifies with codesign -dvvv in terminal.

What certificate is the app signed with? (e.g. your “Developer ID Application” vs “3rd party mac developer application” vs. one from a third party such as Comodo). I believe it matters.

Hmm. That’s interesting. It’s the “Developer ID Application”. Do you know which is the correct one?

I believe that’s the correct one, assuming this is not an app for the Mac App Store…

No. Just regular Mavericks and the like. It successfully allows the app to be opened with the unknown developer warning. Wonder if I should redownload my certificates

Well, I don’t know what I was doing wrong with my own code signing using codesign -f -s. However if I run my app through App Wrapper, it no longer asks me to accept incoming network connections

I believe you need to sign everything, including Dylibs and frameworks. Perhaps you were only signing part of your app?