Проблема с описанием разрешения записи info plist, игнорируется при сборке - PullRequest
0 голосов
/ 06 апреля 2020

App cra sh при запуске с ошибкой

"[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data."

Но у меня есть Info.plist с описанием использования

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.5</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>19</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSMicrophoneUsageDescription</key>
    <string>App need use microphone to measure SPL level</string>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
</dict>
</plist>

Но все равно сбой при запуске с той же ошибкой. он также зависал, когда я пытался спросить у пользователя разрешение.

switch ([[AVAudioSession sharedInstance] recordPermission]) {
case AVAudioSessionRecordPermissionGranted:
    break;
case AVAudioSessionRecordPermissionDenied:
    break;
case AVAudioSessionRecordPermissionUndetermined:
    // This is the initial state before a user has made any choice
    // You can use this spot to request permission here if you want
    [[AVAudioSession sharedInstance]requestRecordPermission:^(BOOL granted) {
        // Check for granted
    }];
    break;
default:
    break;
}

Я сейчас использую Xcode 11. До этого я пытался обновить это приложение с помощью xcode 10 и локализовать описания в info.plist, но после этого xcode10 не смог собрать. Это было похоже на какую-то ошибку в Xcode 10.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Хорошо. Я обнаружил проблему, это была ошибка в Xcode, когда вы пытались локализовать Info.plist. Вы должны просто установить правильный путь к вашей фактической папке plist /app/Base.lproj/Info.plist

enter image description here

0 голосов
/ 06 апреля 2020

Чистая сборка должна решить проблему, а также удалить приложение и перезапустить. NSMicrophoneUsageDescription - единственный ключ, который необходимо добавить для вашего варианта использования. Я только что проверил пример приложения и отлично работал. Разница только в скорости против Obj c

...