Запретите Catalina запрашивать разрешения приложений (например, доступ к микрофону или связке ключей) в каждой новой сборке Xcode - PullRequest
0 голосов
/ 03 мая 2020

Кажется, что Catalina будет запрашивать у пользователя разрешения для приложения каждый раз, когда что-либо меняется в сборке Xcode.

Например, у меня есть простой пример, который запрашивает разрешение на доступ к микрофону. Когда приложение компилируется и запускается впервые, оно запрашивает доступ к микрофону. Я даю этот доступ. Если я соберу и запустлю снова, ничего не изменив в коде, этот доступ будет сохранен Однако, если я изменю какой-либо код (даже изменив метку 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 дать постоянное разрешение приложению во время разработки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...