app.config.ts
import { ConfigContext, ExpoConfig } from '@expo/config';
export default ({ config }: ConfigContext): ExpoConfig => {
return {
...config,
name: 'GameOn',
slug: 'GameOn',
owner: 'cosmicoda',
privacy: 'hidden',
orientation: 'portrait',
scheme: process.env.ENVIRONMENT === 'PROD' ? 'gameon' : process.env.ENVIRONMENT === 'STAGING' ? 'gameon-staging' : 'gameon-dev',
icon: process.env.ENVIRONMENT === 'PROD' ? './assets/icons/gameon.png' : process.env.ENVIRONMENT === 'STAGING' ? './assets/icons/gameon-staging.png' : './assets/icons/gameon-dev.png',
splash: {
image: './assets/images/welcome-initial.png',
resizeMode: 'contain',
backgroundColor: '#414863'
},
updates: {
fallbackToCacheTimeout: 0
},
assetBundlePatterns: [
'assets/*'
],
notification: {
icon: process.env.ENVIRONMENT === 'PROD' ? './assets/icons/gameon.png' : process.env.ENVIRONMENT === 'STAGING' ? './assets/icons/gameon-staging.png' : './assets/icons/gameon-dev.png'
},
hooks: {
postPublish: [{
file: 'sentry-expo/upload-sourcemaps',
config: {
organization: 'cosmicoda',
project: process.env.ENVIRONMENT === 'PROD' ? 'gameon' : 'gameon-staging',
authToken: '...'
}
}]
},
ios: {
...config.ios,
supportsTablet: false,
infoPlist: {
NSUserTrackingUsageDescription: '',
UIBackgroundModes: [
'remote-notification',
'fetch'
]
},
icon: process.env.ENVIRONMENT === 'PROD' ? './assets/icons/gameon.png' : process.env.ENVIRONMENT === 'STAGING' ? './assets/icons/gameon-staging.png' : './assets/icons/gameon-dev.png',
bundleIdentifier: process.env.ENVIRONMENT === 'PROD' ? 'com.cosmicoda.gameon' : process.env.ENVIRONMENT === 'STAGING' ? 'com.cosmicoda.gameon-staging' : 'com.cosmicoda.gameon-dev',
googleServicesFile: process.env.ENVIRONMENT === 'PROD' ? './FirebaseService-Info.plist' : process.env.ENVIRONMENT === 'STAGING' ? './FirebaseService-Info-staging.plist' : '',
usesAppleSignIn: true,
config: {
usesNonExemptEncryption: false,
googleSignIn: {
reservedClientId: process.env.ENVIRONMENT === 'PROD' ? 'com.googleusercontent.apps.PROD' : process.env.ENVIRONMENT === 'STAGING' ? 'com.googleusercontent.apps.STAGING' : ''
},
googleMobileAdsAppId: 'ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX',
branch: {
apiKey: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : process.env.ENVIRONMENT === 'STAGING' ? 'STAGING-KEY' : ''
}
},
associatedDomains: [
process.env.ENVIRONMENT === 'PROD' ? 'applinks:PROD.cosmicoda.com' : process.env.ENVIRONMENT === 'STAGING' ? 'applinks:STAGING.cosmicoda.com' : ''
]
},
android: {
...config.android,
useNextNotificationsApi: true,
icon: process.env.ENVIRONMENT === 'PROD' ? './assets/icons/gameon.png' : process.env.ENVIRONMENT === 'STAGING' ? './assets/icons/gameon-staging.png' : './assets/icons/gameon-dev.png',
package: process.env.ENVIRONMENT === 'PROD' ? 'com.cosmicoda.gameon' : process.env.ENVIRONMENT === 'STAGING' ? 'com.cosmicoda.gameon_staging' : 'com.cosmicoda.gameon_dev',
googleServicesFile: process.env.ENVIRONMENT === 'PROD' ? './firebase-services.json' : process.env.ENVIRONMENT === 'STAGING' ? './firebase-services-staging.json' : '',
config: {
googleMobileAdsAppId: 'ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX',
branch: {
apiKey: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : process.env.ENVIRONMENT === 'STAGING' ? 'STAGING-KEY' : ''
}
}
},
facebookScheme: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KE',
facebookAppId: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KE',
facebookDisplayName: process.env.ENVIRONMENT === 'PROD' ? 'GameOn' : 'GameOn - Staging',
extra: {
environment: process.env.ENVIRONMENT ? process.env.ENVIRONMENT : '',
firebase: {
apiKey: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KEY',
authDomain: process.env.ENVIRONMENT === 'PROD' ? 'PROD-URL' : 'STAGING-URL',
databaseURL: process.env.ENVIRONMENT === 'PROD' ? 'PROD-URL' : 'STAGING-URL',
projectId: process.env.ENVIRONMENT === 'PROD' ? 'PROD-URL' : 'STAGING-URL',
storageBucket: process.env.ENVIRONMENT === 'PROD' ? 'PROD-URL' : 'STAGING-URL',
messagingSenderId: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KEY',
appId: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KEY',
measurementId: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-KEY'
},
sentry: {
dsn: process.env.ENVIRONMENT === 'PROD' ? 'PROD-KEY' : 'STAGING-URL'
}
}
}
};
I removed all sensitive information.
and app.json:
{
"expo": {
"version": "1.0.1",
"ios": {
"buildNumber": "1.0.1"
},
"android": {
"versionCode": 2
}
}
}
Let me know if you find something suspicious in the file.
Thanks