1import { 2 AndroidConfig, 3 AndroidManifest, 4 ConfigPlugin, 5 withAndroidManifest, 6} from '@expo/config-plugins'; 7import { ExpoConfig } from '@expo/config-types'; 8 9import getDefaultScheme from './getDefaultScheme'; 10 11export const withGeneratedAndroidScheme: ConfigPlugin = (config) => { 12 return withAndroidManifest(config, (config) => { 13 config.modResults = setGeneratedAndroidScheme(config, config.modResults); 14 return config; 15 }); 16}; 17 18export function setGeneratedAndroidScheme( 19 config: Pick<ExpoConfig, 'scheme' | 'slug'>, 20 androidManifest: AndroidManifest 21): AndroidManifest { 22 // Generate a cross-platform scheme used to launch the dev client. 23 const scheme = getDefaultScheme(config); 24 if (!AndroidConfig.Scheme.hasScheme(scheme, androidManifest)) { 25 androidManifest = AndroidConfig.Scheme.appendScheme(scheme, androidManifest); 26 } 27 return androidManifest; 28} 29