Sure of course. I have been developing in Expo app for a while now, starting SDK 39, just upgraded to SDK 40. During this period, I did not try to build the app. It was my first time trying to build the app yesterday with expo build:ios -t simulator
.
My app.config.ts
import { ExpoConfig } from '@expo/config'
export default (): ExpoConfig => ({
name: 'the-app',
description: 'This is a description',
slug: 'the-app',
privacy: 'hidden',
version: '1.0.0',
platforms: ['ios'],
orientation: 'portrait',
userInterfaceStyle: 'automatic',
icon: './assets/icon.png',
developmentClient: { silentLaunch: true },
scheme: 'testscheme',
ios: {
bundleIdentifier: 'com.test.the-app',
infoPlist: {
CFBundleAllowMixedLocalizations: true
},
splash: {
image: './assets/splash.png',
resizeMode: 'contain',
backgroundColor: '#ffffff'
}
},
locales: {
en: {
CFBundleDisplayName: 'Name'
}
},
assetBundlePatterns: [
'assets/*'
]
})
My babel.config.ts
module.exports = function (api) {
api.cache(true)
return {
presets: ['babel-preset-expo'],
plugins: [
['@babel/plugin-proposal-optional-chaining'],
[
'module-resolver',
{
alias: {
src: './src'
}
}
]
]
}
}
And my tsconfig.json
{
"compilerOptions": {
"target": "ES6",
"allowSyntheticDefaultImports": true,
"jsx": "react-native",
"lib": ["dom", "esnext"],
"moduleResolution": "node",
"noEmit": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"strict": true,
"baseUrl": ".",
"paths": {
"src/*": ["src/*"]
}
},
"exclude": ["node_modules"]
}
I keep App.tsx
at the root of the directory, and the rest of the code in ./src
.