import { ExpoConfig } from '@expo/config-types'; import { InfoPlist } from './IosConfig.types'; import { createInfoPlistPluginWithPropertyGuard } from '../plugins/ios-plugins'; export const withVersion = createInfoPlistPluginWithPropertyGuard( setVersion, { infoPlistProperty: 'CFBundleShortVersionString', expoConfigProperty: 'version', }, 'withVersion' ); export const withBuildNumber = createInfoPlistPluginWithPropertyGuard( setBuildNumber, { infoPlistProperty: 'CFBundleVersion', expoConfigProperty: 'ios.buildNumber', }, 'withBuildNumber' ); export function getVersion(config: Pick) { return config.version || '1.0.0'; } export function setVersion(config: Pick, infoPlist: InfoPlist): InfoPlist { return { ...infoPlist, CFBundleShortVersionString: getVersion(config), }; } export function getBuildNumber(config: Pick) { return config.ios?.buildNumber ? config.ios.buildNumber : '1'; } export function setBuildNumber(config: Pick, infoPlist: InfoPlist): InfoPlist { return { ...infoPlist, CFBundleVersion: getBuildNumber(config), }; }