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 microphonePermission?: string; 10 cameraPermission?: string; 11} | void> = (config, { microphonePermission, cameraPermission } = {}) => { 12 if (!config.ios) config.ios = {}; 13 if (!config.ios.infoPlist) config.ios.infoPlist = {}; 14 config.ios.infoPlist.NSCameraUsageDescription = 15 cameraPermission || config.ios.infoPlist.NSCameraUsageDescription || CAMERA_USAGE; 16 config.ios.infoPlist.NSMicrophoneUsageDescription = 17 microphonePermission || config.ios.infoPlist.NSMicrophoneUsageDescription || MICROPHONE_USAGE; 18 19 return AndroidConfig.Permissions.withPermissions(config, ['android.permission.CAMERA']); 20}; 21 22export default createRunOncePlugin(withBarcodeScanner, pkg.name, pkg.version); 23