Name Date Size #Lines LOC

..26-Sep-2023-

android/H26-Sep-2023-19,03317,840

build/H26-Sep-2023-120104

bundle/H26-Sep-2023-7,8816,612

expo-dev-launcher-gradle-plugin/H26-Sep-2023-417312

ios/H26-Sep-2023-16,98015,888

plugin/H26-Sep-2023-220148

src/H26-Sep-2023-11685

.eslintrc.jsH A D26-Sep-2023103 31

.gitattributesH A D26-Sep-202316 21

.gitignoreH A D26-Sep-2023340 3430

.npmignoreH A D26-Sep-2023183 128

CHANGELOG.mdH A D26-Sep-202338.9 KiB692403

README.mdH A D26-Sep-20232.7 KiB7143

app.plugin.jsH A D26-Sep-202360 21

babel.config.jsH A D26-Sep-2023895 4234

expo-dev-launcher.podspecH A D26-Sep-20233.9 KiB11193

expo-module.config.jsonH A D26-Sep-2023628 2221

index.jsH A D26-Sep-202325 21

metro.config.jsH A D26-Sep-2023745 2519

package.jsonH A D26-Sep-20232.1 KiB7069

react-native.config.jsH A D26-Sep-2023169 108

setupTests.tsH A D26-Sep-20231.9 KiB7254

tsconfig.jsonH A D26-Sep-2023217 109

write_embedded_bundle.shH A D26-Sep-2023615 2717

README.md

1# expo-dev-launcher
2
3`expo-dev-launcher` is an npm package installable in any Expo or React Native project. Once installed, any Debug builds of your application will gain the ability to load projects from Expo CLI. Release builds of your application will not change other than the addition of a few header files. This package is intended to be included in your project through [`expo-dev-client`](https://docs.expo.dev/clients/introduction/).
4
5## Documentation
6
7You can find more information in the [Expo documentation](https://docs.expo.dev/develop/development-builds/introduction).
8
9## Contributing
10
11The `expo-dev-launcher` repository consists of two different parts, the exported package, which includes the native functions, located in the `android`, `ios` and `src` folders and the Dev Launcher interface, located under the `bundle` folder.
12
13Local development is usually done through `bare-expo`.
14
15To use `dev-client` when running `bare-expo` on Android, open [MainApplication.java](/apps/bare-expo/android/app/src/main/java/dev/expo/payments/MainApplication.java) and set the `USE_DEV_CLIENT` value to `true`.
16
17```diff
18- static final boolean USE_DEV_CLIENT = false;
19+ static final boolean USE_DEV_CLIENT = true;
20```
21
22To use `dev-client` when running `bare-expo` on iOS, open [AppDelegate.mm](/apps/bare-expo/ios/BareExpo/AppDelegate.mm) and set the `USE_DEV_CLIENT` value to `YES`.
23
24```diff
25- BOOL useDevClient = NO;
26+ BOOL useDevClient = YES;
27```
28
29### Making JavaScript changes inside the `bundle` folder
30
31To update the JavaScript code inside the `bundle` folder, you need to run the `dev-launcher` bundler locally.
32
331. Navigate to the `dev-launcher` package: `cd packages/expo-dev-launcher`
342. Start the Metro bundler: `yarn start`
353. Adjust the dev-launcher URL to point to your local bundler
36
37<details>
38
39#### On Android
40
41Open [DevLauncherController.kt](/packages/expo-dev-launcher/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt) and update the `DEV_LAUNCHER_HOST` value to your bundler URL.
42
43E.g.
44
45```diff
46- private val DEV_LAUNCHER_HOST: String? = null
47+ private val DEV_LAUNCHER_HOST: String? = "10.0.2.2:8090";
48```
49
50#### On iOS
51
523.1. Open another terminal window and navigate to the `ios` folder inside `bare-expo`
53
543.2. Export the `EX_DEV_LAUNCHER_URL` variable in your shell before running `pod install`.
55
56E.g.
57
58```
59export EX_DEV_LAUNCHER_URL=http://localhost:8090
60```
61
62This will cause the controller to see if the `expo-launcher` packager is running, and if so, use that instead of the prebuilt bundle.
63
643.3. Run `pod install`
65
66</details>
67
684. Recompile `bare-expo`
695. Play with your changes on a simulator or device
706. Once you've made all the necessary changes run `yarn bundle` to update the embedded bundle
71