Configuring ExpoKit to do not load any JS from expo release channels

Hi, I’m trying to build an app with detached Expo on local machine using XCode. So far I got to the point that any build will require expo release channel (at least) to run an app. How I can compile a fully network-independent build? Imagine the case when user doesn’t have the network at all and was managed to load an app from app store and never run it before.

My App Runs on Both Android And Ios Without Any Internet

Look My app.json exemple:

{
  "expo": {
    "sdkVersion": "28.0.0", // Minimum SDK 27 to support Asssets and Bundle on Both Ios and Android
    "assetBundlePatterns": [
      "assets/fonts/*",
      "assets/img/*"
    ]
  }
}

it’s important run exp publish before build on Xcode ou Android Studio, this comand will generate:

  • android/app/src/main/assets/shell-app-manifest.json
  • android/app/src/main/assets/shell-app.bundle
  • ios/APPNAME/Supporting/shell-app-manifest.json
  • ios/APPNAME/Supporting/shell-app.bundle

This files will be bundled inside Apk and Ipa Files. this way your app will work fully without internet connection.

@romantymchenko I wish i’ve helped you.

3 Likes

@romantymchenko - also check out our guide for configuring OTA Updates.

If you have updates.fallbackToCacheTimeout set to 0 in app.json (the default) then your app will already have the behavior you want – it will always immediately load with a pre-downloaded version of your app while trying to fetch an update asynchronously in the background. You can also disable OTA updates entirely with updates.enabled: false.

1 Like

Yeah, I’ve tried with Expo build (not detached) and updates.enabled: false. Unfortunately if there is no connection to internet on first run an app just stuck on loading screen. But I’ll try now with detached and running exp publish. Will update you asap.

@romantymchenko - hmm, that’s definitely not supposed to happen. Let me know what you find out!

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.