1import { 2 AndroidConfig, 3 ConfigPlugin, 4 createRunOncePlugin, 5 withInfoPlist, 6} from 'expo/config-plugins'; 7 8const pkg = require('expo-background-fetch/package.json'); 9 10const withBackgroundFetch: ConfigPlugin = (config) => { 11 // TODO: Maybe entitlements are needed 12 13 config = withInfoPlist(config, (config) => { 14 if (!Array.isArray(config.modResults.UIBackgroundModes)) { 15 config.modResults.UIBackgroundModes = []; 16 } 17 if (!config.modResults.UIBackgroundModes.includes('fetch')) { 18 config.modResults.UIBackgroundModes.push('fetch'); 19 } 20 return config; 21 }); 22 23 return AndroidConfig.Permissions.withPermissions(config, [ 24 'android.permission.RECEIVE_BOOT_COMPLETED', 25 'android.permission.WAKE_LOCK', 26 ]); 27}; 28 29export default createRunOncePlugin(withBackgroundFetch, pkg.name, pkg.version); 30