为什么我的AudioUnit(AUv3)主机在iOS 14中实例化后立即失去XPC连接



我是用Objective C.编写的iOS版AudioUnit主机的作者。

在iOS 14中,它开始在任何AU工具的实例化时崩溃,但相同的AU在其他主机中也能工作。如果我在instantiateWithComponentDescription的完成处理程序中插入一个break,那么在调用其他任何东西之前,我一退出(但不继续(就会立即看到一个错误:

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.}

有时是4097。当然,对插件的下一次调用会使主机崩溃。在日志中,唯一吸引我眼球的条目是:

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

我是否需要访问该应用程序?如何从中获取更多调试信息?

如果ARC已被禁用,请确保在完成后强制AU保留:

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

最佳

最新更新