Search code examples
react-nativeexpoaws-amplify

Expo Build React Native Apps Missing amplifyconfiguration.json


I'm building a React Native App using Amplify. App works fine and I can run it locally using npx expo start.

I'm now trying to use eas build and for both iOS and Android builds (locally or in cloud), it fails with the following error:

Error: Unable to resolve module ../amplifyconfiguration.json from /home/expo/workingdir/build/frontend/app/_layout.tsx: 
None of these files exist:
  * amplifyconfiguration.json(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css)
  * amplifyconfiguration.json/index(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css)
  21 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  22 | // @ts-ignore - amplify config is git ignored, as it depends on the environment, should be generated when you pull
> 23 | import config from '../amplifyconfiguration.json';
     |                     ^
  24 | import { enGB, registerTranslation } from 'react-native-paper-dates';
  25 | import { fetchAuthSession } from 'aws-amplify/auth';

Is the only solution to somehow login to amplify in the EAS build process and pull the desired environment or have I done something wrong?


Solution

  • The solution was to create an .easignore file. This takes precedence over the .gitignore file.

    I copied the .gitignore and excluded both amplifyconfiguration.json and aws-exports.js from it.