import { ConfigPlugin, createRunOncePlugin } from 'expo/config-plugins'; const pkg = require('expo-tracking-transparency/package.json'); export const DEFAULT_NSUserTrackingUsageDescription = 'Allow this app to collect app-related data that can be used for tracking you or your device.'; const withTrackingTransparency: ConfigPlugin< { /** * Sets the iOS `NSUserTrackingUsageDescription` permission message in `Info.plist`. Omitting a * description will result in using the default permission message. * @default 'Allow this app to collect app-related data that can be used for tracking you or your * device.' */ userTrackingPermission?: string; } | void > = (config, props) => { config = withUserTrackingPermission(config, props); return config; }; export const withUserTrackingPermission: ConfigPlugin< { userTrackingPermission?: string; } | void > = (config, { userTrackingPermission } = {}) => { if (!config.ios) config.ios = {}; if (!config.ios.infoPlist) config.ios.infoPlist = {}; config.ios.infoPlist.NSUserTrackingUsageDescription = userTrackingPermission || config.ios.infoPlist.NSUserTrackingUsageDescription || DEFAULT_NSUserTrackingUsageDescription; return config; }; export default createRunOncePlugin(withTrackingTransparency, pkg.name, pkg.version);