1082815dcSEvan Baconimport { ExpoConfig } from '@expo/config-types'; 2082815dcSEvan Bacon 3082815dcSEvan Baconimport { InfoPlist } from './IosConfig.types'; 4*8a424bebSJames Ideimport { createInfoPlistPluginWithPropertyGuard } from '../plugins/ios-plugins'; 5082815dcSEvan Bacon 6082815dcSEvan Baconexport const withUsesNonExemptEncryption = createInfoPlistPluginWithPropertyGuard( 7082815dcSEvan Bacon setUsesNonExemptEncryption, 8082815dcSEvan Bacon { 9082815dcSEvan Bacon infoPlistProperty: 'ITSAppUsesNonExemptEncryption', 10082815dcSEvan Bacon expoConfigProperty: 'ios.config.usesNonExemptEncryption', 11082815dcSEvan Bacon }, 12082815dcSEvan Bacon 'withUsesNonExemptEncryption' 13082815dcSEvan Bacon); 14082815dcSEvan Bacon 15082815dcSEvan Baconexport function getUsesNonExemptEncryption(config: Pick<ExpoConfig, 'ios'>) { 16082815dcSEvan Bacon return config?.ios?.config?.usesNonExemptEncryption ?? null; 17082815dcSEvan Bacon} 18082815dcSEvan Bacon 19082815dcSEvan Baconexport function setUsesNonExemptEncryption( 20082815dcSEvan Bacon config: Pick<ExpoConfig, 'ios'>, 21082815dcSEvan Bacon { ITSAppUsesNonExemptEncryption, ...infoPlist }: InfoPlist 22082815dcSEvan Bacon): InfoPlist { 23082815dcSEvan Bacon const usesNonExemptEncryption = getUsesNonExemptEncryption(config); 24082815dcSEvan Bacon 25082815dcSEvan Bacon // Make no changes if the key is left blank 26082815dcSEvan Bacon if (usesNonExemptEncryption === null) { 27082815dcSEvan Bacon return infoPlist; 28082815dcSEvan Bacon } 29082815dcSEvan Bacon 30082815dcSEvan Bacon return { 31082815dcSEvan Bacon ...infoPlist, 32082815dcSEvan Bacon ITSAppUsesNonExemptEncryption: usesNonExemptEncryption, 33082815dcSEvan Bacon }; 34082815dcSEvan Bacon} 35