1// To prebuild:
2// 1. `npm pack` in `../../templates/expo-template-bare-minimum`
3// 2. `EXPO_SDK_VERSION=43.0.0 expo prebuild --clean --template --no-install ../../templates/expo-template-bare-minimum/expo-template-bare-minimum-42.0.0.tgz`
4//   - This can be debugged with `EXPO_DEBUG=1` and `DEBUG=expo:*`
5// 3. `pod install` in the ios folder. Do this in its own step since direnv may break your cocoapods install.
6// 4. `EXPO_SDK_VERSION=43.0.0 expo run:ios --no-install`
7//   - This can be debugged with `EXPO_DEBUG=1` and `DEBUG=expo:*`
8// 5. `EXPO_SDK_VERSION=43.0.0 expo run:android`
9export default ({ config }) => {
10  config.version = '43.0.0';
11  // app.json defines the sdkVersion as UNVERSIONED, we can override it here dynamically if we need to,
12  // for example with an environment variable.
13  if (process.env.EXPO_SDK_VERSION) {
14    config.sdkVersion = process.env.EXPO_SDK_VERSION;
15  }
16  config.plugins = [
17    // iOS plugins
18    // Add a plugin to modify the AppDelegate.
19    './plugins/withNotFoundModule',
20    // Add the React DevMenu back to the client.
21    './plugins/withDevMenu',
22
23    // Android plugins
24
25    // expo-modules-test-core requires kotlin, so additional setup must be executed.
26    'expo-modules-test-core',
27    [
28      './plugins/withGradleProperties',
29      {
30        // Increase default java VM size so it can handle building all the Expo packages.
31        'org.gradle.jvmargs':
32          '-Xmx3g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8',
33      },
34    ],
35    [
36      // expo-modules-test-core must be added manually.
37      './plugins/withSettingsImport',
38      {
39        packageName: 'expo-modules-test-core',
40        packagePath: '../../../packages/expo-modules-test-core/android',
41      },
42    ],
43  ];
44
45  config.plugins.push([
46    'expo-document-picker',
47    {
48      appleTeamId: 'XXXXXX',
49    },
50  ]);
51
52  config.plugins.push([
53    'expo-notifications',
54    {
55      icon: './assets/icons/notificationIcon.png',
56      color: '#5539cc',
57      sounds: ['./assets/sounds/cat.wav'],
58    },
59  ]);
60
61  // The dev client plugins shouldn't be installed
62  config._internal.pluginHistory = {
63    // expo-dev-launcher causes prebuild to freeze on a find/replace.
64    'expo-dev-launcher': {},
65    'expo-dev-menu': {},
66    'expo-dev-client': {},
67  };
68
69  return config;
70};
71