audiounit - 为什么我的 AudioUnit (AUv3) 主机在 iOS 14 中实例化后立即失去 XPC 连接?
问题描述
我是用 Objective C 编写的 iOS AudioUnit 主机的作者。
在 iOS 14 中,它在任何 AU 仪器的实例化时开始崩溃,但相同的 AU 在其他主机上也能正常工作。如果我在 instantiateWithComponentDescription 的完成处理程序中放置一个中断,我会在我一退出(但不继续)时立即看到一个错误,然后再调用其他任何内容:
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];
}];
最好的
推荐阅读
- tensorflow - 堆叠MNIST和Fashion_MNIST的困难
- mysql - Sequelize - 如何使用种子文件添加数据进行关联
- heidisql - Heidisql-无法连接到本地主机
- visual-studio-code - 如何使用 Visual Studio Code 编辑 iPad 的“在我的 iPad 上”文件夹中的文件?
- javascript - 从 QR 码获取 unicode PNG 响应到 PNG API
- ios - iOS Mapkit - dequeueReusableAnnotationView 与 Interface Builder XIB
- javascript - JavaScript 程序如何知道全局属性名称是否由 ECMA-262 定义?
- caching - “更高级别”的缓存是指 L 之后或更接近 CPU 的更大数量吗?
- angular - 根据对象中的其他值从列表中删除选项?
- javascript - 在组件中将 Vanilla Javascript 转换为 React 应用程序