xcode - 防止 Catalina 在每个新的 Xcode 构建中请求应用程序权限(如麦克风或钥匙串访问)
问题描述
似乎每次 Xcode 构建中发生任何更改时,Catalina 都会向用户询问应用程序的权限。
例如,我有一个简单的示例,要求获得访问麦克风的权限。第一次编译和运行应用程序时,它会要求访问麦克风。我授予该访问权限。如果我再次构建并运行而不更改代码中的任何内容,则将保留该访问权限。但是,如果我更改任何代码(甚至将Text
标签更改一个字符),则会再次显示权限对话框。
import AVFoundation
import SwiftUI
struct ContentView : View {
@ObservedObject private var recorderManager = AudioRecorderManager()
var body: some View {
Text("Recording view")
}
}
class AudioRecorderManager: NSObject, ObservableObject {
override init() {
super.init()
AVCaptureDevice.requestAccess(for: .audio) { allowed in
DispatchQueue.main.async {
if allowed {
print("Allowed")
} else {
print("Not allowed")
}
}
}
}
}
请注意,这还需要您添加Audio Input
到权利和NSMicrophoneUsageDescription
运行Info.plist
之前。
我还注意到访问Keychain
数据时发生了同样的现象。
这大大减慢了我每次构建应用程序时都必须确认访问权限(或者更糟糕的是,输入我的钥匙串数据密码)的开发时间。有没有办法让 Catalina/Xcode 在开发过程中给予应用程序持久的许可?
解决方案
推荐阅读
- python - 通过 django 中的 javascript 将数据从模板发送到视图
- java - 在此特定 URL 获得 403 响应
- javascript - 使用 Object.assign 更新对象后,在数组崩溃时调用 push 方法
- rpm - 让一个rpm自动安装centos-release-scl-rh
- python - 第 23 行的模板标记格式错误:“else (page_num > topics.number|add:'-3') and (page_num < topics.number|add:'3')”
- python - Robot Framework 无法识别自定义库的类(类名和文件名相同)
- mysql - 当一个字段是 Id 数组时连接两个表
- android-studio - 使 pycharm 键盘映射与 Android Studio 相同
- javascript - 为 Leaflet 弹出窗口中的按钮添加 onclick 事件
- eclipse - Eclipse:从 Eclipse 启动时,服务未向尤里卡服务器注册