使用libAVFAudio.dylib测试飞行应用程序崩溃:AVAE_RaiseException(NSString*,...)+ 60

Tho*_*mas 6 iphone crash ios testflight avaudioengine

我在app store上传了一个档案,当我试图播放一个介绍声时,我正在崩溃.我正在AVAudioEngine播放声音.当我通过Xcode编译和运行代码时,一切正常.当我上传TestFlight并尝试将我的应用程序作为内部测试程序运行时,我的应用程序崩溃了.崩溃报告是:

在此输入图像描述

如果我用它AVAudioPlayer来播放那个声音就可以了.我无法理解有什么问题AVAudioEngine.有什么建议吗?

小智 2

我仅在应用程序的发布版本中遇到相同的异常,并且特定于 iPhone7。异常似乎发生在音频会话类别的变化点。就我而言,从

AVAudioSessionCategorySoloAmbient
Run Code Online (Sandbox Code Playgroud)

AVAudioSessionCategoryPlayAndRecord, with:  AVAudioSessionCategoryOptions.defaultToSpeaker
Run Code Online (Sandbox Code Playgroud)

我找到了一种至少适合我的解决方法。

下面的文章 https://forums.developer.apple.com/thread/65656 讲述了这种异常发生在多输入音频单元的初始化时。

为了防止初始化多个输入音频单元,我在更改音频会话类别之前添加了以下代码

AudioOutputUnitStop((engine.inputNode?.audioUnit)!)
AudioUnitUninitialize((engine.inputNode?.audioUnit)!)
Run Code Online (Sandbox Code Playgroud)

引擎是 的实例AVAudioEngine

我希望它能对你们有所帮助!