Why does my AudioUnit (AUv3) host lose XPC connection immediately after instantiation in iOS 14?

I'm an author of an AudioUnit host for iOS written in Objective C.

In iOS 14, it began crashing on instantiation of any AU instrument, but the same AUs work in other hosts. If I put a break in the completion handler for instantiateWithComponentDescription, I immediately see an error as soon as I step out (but not continue), before anything else is called:

Code Block
Error in destroying pipe Error Domain=NSCocoaErrorDomain Code=4099 "The connection on anonymousListener or serviceListener from pid 630 was invalidated from this process." UserInfo={NSDebugDescription=The connection on anonymousListener or serviceListener from pid 630 was invalidated from this process.}


Sometimes it's a 4097. The next call into the plugin crashes the host, of course. In the log, the only entry that catches my eye is this:

Code Block
default 14:38:47.105386-0700  MPC Pro 2    [u 01E943B9-94B5-4BF2-8926-9E843EB6482D:m (null)] [<private>(<private>)] invalidating startup assertion 
default 14:38:47.106987-0700  runningboardd  Invalidating assertion 32-637-996 (target:[xpcservice<com.retronyms.digits.Phase84-Component([application<com.akai.impcpro2>:637])>:639]) from originator [application<com.akai.impcpro2>:637]
default 14:38:47.733485-0700  SpringBoard   Workspace connection invalidated for <FBExtensionProcess: 0x156e2da50; xpcservice<com.retronyms.digits.Phase84-Component([application<com.akai.impcpro2>:637])>:639(v6BE)>
default 14:38:47.733583-0700  SpringBoard   [xpcservice<com.retronyms.digits.Phase84-Component([application<com.akai.impcpro2>:637])>:639] Now flagged as pending exit for reason: workspace client connection invalidated

Could there be some sort of access I need to give the app? How could I get more debug information out of this?
Hi,

if your Objective-C Automatic Reference Counting setting has been disabled, force the AUv3 to retain in completion handler:

Code Block language
[AUAudioUnit instantiateWithComponentDescription:descr options:{} completionHandler:^(AUAudioUnit * nullable an_audio_unit, NSError * nullable error) {
      [an_audio_unit retain];
 }];




Best
Why does my AudioUnit (AUv3) host lose XPC connection immediately after instantiation in iOS 14?
 
 
Q