Flutter IOS 相机权限不适用于permission_handler 包

问题描述 投票:0回答:1

我在我的flutter应用程序中添加了permission_handler 11.1.0包。 打包链接 根据他们的文档,我在安装程序的 PodFile 中添加了这些代码:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: PermissionGroup.camera
        'PERMISSION_CAMERA=1',

        ## dart: PermissionGroup.photos
        'PERMISSION_PHOTOS=1',

        ## dart: PermissionGroup.mediaLibrary
        # 'PERMISSION_MEDIA_LIBRARY=1',
        ]
    end
  end
end

#Default installer commented
# post_install do |installer|
#   installer.pods_project.targets.each do |target|
#     flutter_additional_ios_build_settings(target)
#   end
# end

我还在 Info.plist 文件中添加了这些键:

<key>PHPhotoLibraryPreventAutomaticLimitedAccessAlert</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>This App requires access to your phone’s camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This App requires Photo permission.</string>

但是,当我在 IOS 模拟器中运行我的应用程序时,图库权限和从图库中选取图像工作得很好,但相机权限根本不显示,相机无法打开!我错过了什么?

注意:我的flutter版本3.16.3 •通道稳定,Dart 3.2.3,DevTools 2.28.4

我尝试使用permission_handler包运行我的flutter应用程序的相机权限。我希望像 Android 一样在应用程序中显示相机权限。但实际上结果是,当我想要获取相机权限时,它总是显示“永远被拒绝”并且没有相机权限显示

flutter info.plist podfile ios-camera
1个回答
0
投票

解决了!更新了 PodFile 的 post_install:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: PermissionGroup.camera
        'PERMISSION_CAMERA=1',

        ## dart: PermissionGroup.photos
        'PERMISSION_PHOTOS=1',

        ## dart: PermissionGroup.mediaLibrary
        # 'PERMISSION_MEDIA_LIBRARY=1',
        ]
    end
    flutter_additional_ios_build_settings(target)
  end
end

#Default installer commented
# post_install do |installer|
#   installer.pods_project.targets.each do |target|
#     flutter_additional_ios_build_settings(target)
#   end
# end

现在工作正常

© www.soinside.com 2019 - 2024. All rights reserved.