iOS 应用在 TestFlight 上不询问摄像头和麦克风权限?
iOS app does not ask camera and microphone permissions on TestFlight?
我有一个不寻常的问题。当我使用 XCode 测试我的应用程序时,所有东西都在我的 iphone 和其他 iphone 上运行,该应用程序要求用户提供所有权限。但是当我将我的应用程序添加到 TestFlight 时,该应用程序不会向用户询问摄像头和麦克风权限? “隐私 - 相机使用说明”和“隐私 - 照片库使用说明”密钥已添加到 info.plist 文件中。该应用程序在 TestFlight 上的行为不同,怎么可能?
如果用户之前拒绝使用相机,则状态将为 AVAuthorizationStatusDenied,请求权限时不会显示对话框。
要确保您的应用在捕获媒体之前具有权限,请按照以下步骤操作。
配置应用的 Info.plist 文件
iOS 要求您的应用提供静态消息,以便在系统请求摄像头或麦克风权限时向用户显示:
- 如果您的应用使用设备摄像头,请包含隐私 - 摄像头使用
应用 Info.plist 文件中的描述键。
- 如果您的应用使用设备照片库,请包含隐私 - 照片
您应用的 Info.plist 文件
中的库使用说明键
验证并请求捕获授权
您可以在 AppDelegate 主文件中添加以下代码,或者在单击捕获媒体时添加以下代码以请求访问授权。
import AVFoundation
AVCaptureDevice.requestAccess(for: .video) { granted in
if granted {
// Setup your code.
}
}
实际上,我们最近遇到了类似的问题。在我们的案例中,解决方案与签名有关。
如果您在 Xcode 中勾选了自动管理签名框,您可以试试这个来解决这个问题:
- 在 Apple Developer Console 上创建 'Distribution' 证书。
- 通过选择在步骤 1 中创建的证书来创建 'App Store' 配置文件。
- 下载证书并添加到您的钥匙串。
- 在 Xcode 中使用这个新创建的配置文件和证书更新发布签名部分。
通过这些步骤,我们解决了 TestFlight 中的权限问题。我希望这篇 post 有一天能对某人有所帮助。
我有一个不寻常的问题。当我使用 XCode 测试我的应用程序时,所有东西都在我的 iphone 和其他 iphone 上运行,该应用程序要求用户提供所有权限。但是当我将我的应用程序添加到 TestFlight 时,该应用程序不会向用户询问摄像头和麦克风权限? “隐私 - 相机使用说明”和“隐私 - 照片库使用说明”密钥已添加到 info.plist 文件中。该应用程序在 TestFlight 上的行为不同,怎么可能?
如果用户之前拒绝使用相机,则状态将为 AVAuthorizationStatusDenied,请求权限时不会显示对话框。
要确保您的应用在捕获媒体之前具有权限,请按照以下步骤操作。
配置应用的 Info.plist 文件
iOS 要求您的应用提供静态消息,以便在系统请求摄像头或麦克风权限时向用户显示:
- 如果您的应用使用设备摄像头,请包含隐私 - 摄像头使用 应用 Info.plist 文件中的描述键。
- 如果您的应用使用设备照片库,请包含隐私 - 照片 您应用的 Info.plist 文件 中的库使用说明键
验证并请求捕获授权
您可以在 AppDelegate 主文件中添加以下代码,或者在单击捕获媒体时添加以下代码以请求访问授权。
import AVFoundation
AVCaptureDevice.requestAccess(for: .video) { granted in
if granted {
// Setup your code.
}
}
实际上,我们最近遇到了类似的问题。在我们的案例中,解决方案与签名有关。
如果您在 Xcode 中勾选了自动管理签名框,您可以试试这个来解决这个问题:
- 在 Apple Developer Console 上创建 'Distribution' 证书。
- 通过选择在步骤 1 中创建的证书来创建 'App Store' 配置文件。
- 下载证书并添加到您的钥匙串。
- 在 Xcode 中使用这个新创建的配置文件和证书更新发布签名部分。
通过这些步骤,我们解决了 TestFlight 中的权限问题。我希望这篇 post 有一天能对某人有所帮助。