Почему мой хост AudioUnit (AUv3) теряет соединение XPC сразу после создания экземпляра в iOS 14?

Я автор хоста AudioUnit для iOS, написанного на Objective C.

В iOS 14 он начал падать при создании экземпляра любого инструмента AU, но те же AU работают на других хостах. Если я помещаю перерыв в обработчик завершения для instanceWithComponentDescription, я сразу же вижу ошибку, как только я выхожу (но не продолжаю), до того, как будет вызвано что-либо еще:

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

Может ли быть какой-то доступ, который мне нужно предоставить приложению? Как я могу получить больше отладочной информации из этого?


person Louis Gorenfeld    schedule 04.09.2020    source источник


Ответы (1)


В случае, если ARC был отключен, убедитесь, что AU сохраняется после завершения:

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

Лучший

person zerodebug    schedule 16.01.2021