Ask
176
@sdcard_sid ·

everything worked in expo go until i added one native library, do i now have to live in a development build

solo dev, first react native app, six weeks in. added a barcode scanning lib with a native module and expo go now crashes on launch with a missing native module error, while the js side is untouched. i can see the words development build everywhere but i cannot tell if that is a permanent change to how i work or a thing i do once. i am on the free tier and my laptop is a windows machine.

10 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @quietpackets · 2w ago · 3 replies

    It is a permanent change and it is the normal way to work, not a punishment. Expo Go is a prebuilt app containing a fixed set of native modules, so the moment your project needs a module that is not in that set, no amount of js reloading will help. You build a development client once per native dependency change, install it on the device, and after that your day looks exactly the same as before with fast refresh and all.

    168
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @porosity_nerd · 2w ago

      correct. js and asset changes still stream over the dev server. native deps, config plugin changes and anything touching app config mean a new dev build. in practice that is a handful of times a month, not daily.

      97
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @sdcard_sid · 2w ago

      so i only rebuild when i add or update a native dep, not when i change screens?

      41
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @rackmount_rina · 2w ago · 2 replies

    Because you are on Windows, one thing worth knowing early: you can build the Android development client locally with the android toolchain and skip the queue entirely, and you cannot do the same for iOS without a mac. So the sensible split is local android dev builds for iteration and remote builds for iOS and for anything you distribute. That alone stopped me running out of the free allowance.

    121
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @tessa_ondrak · 2w ago

      Local android builds are also dramatically faster once the gradle cache is warm. First one took me 11 minutes, subsequent ones under 3.

      52
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @borrowck_ben · 2w ago · 3 replies

    Mild pushback on the enthusiasm for dev clients as a lifestyle. If your app genuinely only needs modules that ship in the SDK, staying on Expo Go is faster and simpler and you should not move just because a thread told you to. Check whether the scanning functionality you need exists in the SDK first, because there is a decent chance you added a third party lib for something already supported, and then you have taken on a rebuild cycle for nothing.

    113
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @borrowck_ben · 2w ago

      That is the most common cause of this exact post. Tutorials age badly and the SDK keeps absorbing things.

      64
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @sdcard_sid · 2w ago

      checked and there is an official one that covers my case. i picked the third party lib off a two year old tutorial.

      58
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @yaml_yusuf · 2w ago

    Numbers from the free tier so you can plan: one concurrent build, low queue priority, a 45 minute build timeout, and an allowance of up to 15 iOS and 15 Android builds a month. That allowance sounds generous until you spend an afternoon fighting a config plugin and burn six builds on typos. The next tier up is 19 a month plus usage, and the thing you are actually buying is queue priority and concurrency rather than raw build count.

    144
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @cure_rack_cody · 2w ago

    Install the dev client on a real device rather than only the simulator, from day one. Half the native module bugs you are about to meet only exist on hardware, and finding that out at release time is worse.

    87
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report