1import { AndroidConfig, ConfigPlugin, createRunOncePlugin } from 'expo/config-plugins'; 2 3const pkg = require('expo-barcode-scanner/package.json'); 4 5const CAMERA_USAGE = 'Allow $(PRODUCT_NAME) to access your camera'; 6const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone'; 7 8const withBarcodeScanner: ConfigPlugin< 9 { 10 microphonePermission?: string; 11 cameraPermission?: string; 12 } | void 13> = (config, { microphonePermission, cameraPermission } = {}) => { 14 if (!config.ios) config.ios = {}; 15 if (!config.ios.infoPlist) config.ios.infoPlist = {}; 16 config.ios.infoPlist.NSCameraUsageDescription = 17 cameraPermission || config.ios.infoPlist.NSCameraUsageDescription || CAMERA_USAGE; 18 config.ios.infoPlist.NSMicrophoneUsageDescription = 19 microphonePermission || config.ios.infoPlist.NSMicrophoneUsageDescription || MICROPHONE_USAGE; 20 21 return AndroidConfig.Permissions.withPermissions(config, ['android.permission.CAMERA']); 22}; 23 24export default createRunOncePlugin(withBarcodeScanner, pkg.name, pkg.version); 25