Unregister/limit App Extensions?

Hi,


Is it possible to unregister (or hide) an app extension (i.e. audio unit) from the system, such that only the app it comes bundled with can see/load it? If so, can this be done at run-time by the app it came with? For instance; for a list of plug-ins that comes with the app, can I selectively choose at run-time which plug-ins are exposed to other applications (i.e. Logic)? Much like the plug-in manager inside Logic, only for visibility outside the app.

A possible candidate for registering and unregistering is the 'pluginkit -a' and 'pluginkit -r', but the man-page states that it may get added by automatic discovery procedures, so I reckon there must be a better option.

Replies

Jesus, this forum is dead.

haha, it is man. I too wish it was active.


To answer your question, I have limited knowledge in that regard. Pretty sure you can decide which AUs to expose but I think that’s done compile time.


I’m not sure what your goal is, but if it’s for in-app purchase type thing, you can selective make the extensions non-functional (or go into a demo mode) if user hasn’t purchased them.

Thanks for the answer! 😀 Yeah, pretty much. I wish Apple hadn't made the v3 API the way they have. Ideally, I would've loved to download them only when they have been purchased as these things can get pretty large in size, but they are preventing that by the fact that we cannot download executable binaries, and they have to be contained in an app ... Ridiculous constraints in my opinion. Although I do understand why. But they shouldn't put the same constaints on Audio Units as the other App Extensions — i feel AU's are a tad different from these other externsion, and should be treated as such.


The problem I see coming a long way off, is that if I make a bunch of plug-ins and they all come with one container app, from which they can be purchased, if I don't find a way to find them they're going to show up in Logic or other DAWs, which I hate myself, if they aren't usable (or in demo-mode). I don't want to cause my users that pain. So I'm trying to jump through hoops, walk on fire and battle the API to get it to NOT be a poor experience. Which Apple has effectively made almost impossible.