在 Mojave 上更新到 Xcode 10.1,现在我的应用程序总是要求使用麦克风

Posted

技术标签:

【中文标题】在 Mojave 上更新到 Xcode 10.1,现在我的应用程序总是要求使用麦克风【英文标题】:Updated to Xcode 10.1 on Mojave and now my app always asks to use the microphone 【发布时间】:2018-11-01 21:55:46 【问题描述】:

我正在运行一个 AVAudiosession,我怀疑它正在激活麦克风请求,但我只将它用于声音和音乐。在 macOS Mojave 上运行 Xcode 10.1 Simulator 时,为什么会激活访问麦克风的请求?我什至没有写一行来要求访问它。我的应用程序不需要访问它,我也不希望它访问它。这是播放音乐的代码:

AVAudioSession *title = [AVAudioSession sharedInstance];
[title setCategory:AVAudioSessionCategoryAmbient error:nil];
[title setActive:YES error:nil];


//MUSIC
NSString *path = [[NSBundle mainBundle] pathForResource:@"music_nature" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:path];
titleMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];

titleMusic.numberOfLoops = -1;
[titleMusic setVolume:1.0];
[titleMusic play];

如果我注释掉上面的代码,我将不再收到麦克风的请求。但是我没有任何音乐。

示例项目:https://github.com/Coeur/***53109911 (您需要 macOS Mojave 来重现该问题)

【问题讨论】:

请分享您的声音/音乐播放代码。 @ThEuSeFuL 完成。 嗯……这里也一样。升级到 10.1 现在正在询问。 @Cœur。我已将其更改为 [[AVAudioSession sharedInstance]] 并且没有更改。 @Cœur。只需阅读您的上述帖子。所以这是一个 Mojave 错误,而不是 iOS 错误。这是一个巨大的解脱!感谢您的帮助! 【参考方案1】:

我最近在一个音频流应用程序上也遇到了这个问题,该应用程序多年来一直运行良好,没有弹出麦克风访问权限。当您尝试获取 AVAudioSession 时会发生这种情况。

更新:似乎 Xcode 10.2(beta 1)只通过第一次询问然后记住你的答案来解决这个问题。

Update2:Xcode 10.2 现已发布,仅第一次询问。

【讨论】:

这里也一样。我尝试设置不同的categoriesmodes,但他们都这样做了。

以上是关于在 Mojave 上更新到 Xcode 10.1,现在我的应用程序总是要求使用麦克风的主要内容,如果未能解决你的问题,请参考以下文章

我无法使用 Mojave 10.14 安装 gcc

音频未播放 Xcode 10.1 Swift 4

applesimutils --list 在 MacOS Mojave 和 Xcode 11.3 更新后返回空列表 []

如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4

从 xcode 10.1 安装到 iOS 12+ 时,应用程序在启动屏幕上冻结

如何在 macOS 10.14.4 Mojave 上使用 fink