【发布时间】:2022-01-14 13:47:11
【问题描述】:
MacOS 上的 Delphi 11 项目正在使用此代码请求权限:
procedure TCOWMainForm.Button1Click(Sender: TObject);
var
fMic: FMX.Media.TAudioCaptureDevice;
begin
fMic := TAVCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
if (fMic <> nil) then
begin
ShowMessage('fMic not nil so calling fMic.RequestPermission');
fMic.RequestPermission;
end;
end;
Project | Options | Version Info 包括一个密钥对
NSMicrophoneUsageDescription "COW records your voice."
不过,根据 Apple 文档,该项目在调用 fMic.RequestPermission 时被终止:
Requesting Authorization for Media Capture on macOS
在尝试获得在 macOS 公证应用中使用麦克风的许可时,我可能会遗漏什么?
已编辑以包含此 Embarcadero RSP,该 RSP 具有重现该问题的最小项目。
【问题讨论】:
-
你提供的代码对我有用。
-
我认为它必须与 NSMicrophoneUsageDescription 密钥对有关,或者它的密钥无法进入权利 plist。有没有办法在经过公证的应用程序中检查产生的权利?
-
@DaveNottage 感谢您对此进行检查。我已经使用 Show Package Contents 打开了经过公证的应用程序,Info.plist 显示了 NSMicrophoneUsageDescription 键及其字符串。
-
@DaveNottage 我正在仔细检查。我的代码在正常部署时运行良好。完全相同的项目在经过公证后会在请求许可后立即崩溃。那么,当您说代码适合您时,您是否运行了经过公证的版本?
标签: delphi firemonkey delphi-11-alexandria