
mobile_scanner iOS/macOS 扫码权限配置3 步配好相机权限附上线前自查清单【免费下载链接】mobile_scannerA universal Flutter barcode and QR code scanner using CameraX/ML Kit for Android, AVFoundation/Apple Vision for iOS macOS, and ZXing for web.项目地址: https://gitcode.com/GitHub_Trending/mo/mobile_scannermobile_scanner 是跨平台 Flutter 扫码库iOS 与 macOS 底层走 AVFoundation/Apple Vision启动相机前必须先拿到系统授权。相机与照片库的权限配置只涉及三个文件Info.plist 权限描述、PrivacyInfo.xcprivacy 隐私清单、运行时对授权结果的检查。下面按备文件 → 写配置 → 自查给速查信息。开工前先备好这几样待改文件作用适用版本example/ios/Runner/Info.plist声明相机、照片库的访问理由iOSexample/macos/Runner/Info.plist声明相机访问理由macOSPrivacyInfo.xcprivacy隐私清单插件已内置一般只核对iOS 17 设备 / App Store 2024 起工作量很小iOS 端写两个 keymacOS 端写一个 key隐私清单大多不用动。三步完成权限配置第一步Info.plist 权限配置步骤在Info.plist写两对 key描述必须说清具体用途。以下为示例工程的原文keyNSCameraUsageDescription/key stringThis app needs camera access to scan QR and barcodes/string keyNSPhotoLibraryUsageDescription/key stringThis app needs photos access to get QR code from photo library/string只做相机扫描时NSPhotoLibraryUsageDescription可以删掉。macOS 工程同理只需NSCameraUsageDescription。第二步PrivacyInfo.xcprivacy 文件声明方法App Store 自 2024 年起要求随包提交隐私清单。mobile_scanner 已自带清单并通过 mobile_scanner.podspec 的resource_bundles自动打进宿主 App核心内容如下keyNSPrivacyTracking/key false/ keyNSPrivacyAccessedAPITypes/key array/集成方通常无需修改。若你的 App 有 tracking 或收集数据行为需自行补充NSPrivacyTrackingDomains、NSPrivacyCollectedDataTypes字段。第三步对照真实工程核对配置以项目示例工程为准逐项核对iOSexample/ios/Runner/Info.plist 中NSCameraUsageDescription与NSPhotoLibraryUsageDescription均已写入macOSexample/macos/Runner/Info.plist 仅声明NSCameraUsageDescription隐私清单PrivacyInfo.xcprivacykey 名必须拼写精确缺一或写错都会导致系统不弹授权框甚至运行时崩溃。运行时权限流转检查、请求与拒绝处理状态应对动作尚未请求调用MobileScannerController.start()系统弹出授权框hasCameraPermission为 true正常扫码无需额外处理错误码为MobileScannerErrorCode.permissionDenied展示原因并引导去系统设置开启if (!controller.value.hasCameraPermission) { // 引导用户到系统设置开启相机权限 // iOS/macOS 上被拒后无法在应用内再次触发 }注意在 iOS、macOS 与 Web 上用户一旦拒绝应用内无法再次请求授权只能引导用户手动到系统设置开启。这个分支必须写。上线前自查清单检查项常见配错修正建议NSCameraUsageDescription漏配或拼错如 NSCameraDescription核对官方拼写写真实用途NSPhotoLibraryUsageDescription声明了照片库权限但无对应功能删掉声明或落地功能macOS Info.plist只配了 iOS漏了 macos/Runner/Info.plistmacOS 端补相机描述PrivacyInfo.xcprivacy未随包分发声明与实际不符确认 podspec 的 resource_bundles 生效Xcode 签名Bundle ID 与描述不一致、提示错位检查 Signing Capabilities审核红线描述与实际用途不符相机描述写了用于拍照裁剪之类与扫码无关的内容模糊描述应用功能需要这种空话直接打回要写具体场景声明与行为不匹配Info.plist 声明了权限但代码里没有功能真正使用它隐私清单与 App 行为矛盾声明无 tracking实际却有追踪 API 调用按清单配完后首次进入扫描页即会弹出系统授权框。授权通过后扫码开箱即用被拒时也能优雅跳转设置页而不是静默失败。【免费下载链接】mobile_scannerA universal Flutter barcode and QR code scanner using CameraX/ML Kit for Android, AVFoundation/Apple Vision for iOS macOS, and ZXing for web.项目地址: https://gitcode.com/GitHub_Trending/mo/mobile_scanner创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考