Building detached app

Help me out here… I don’t know what I’m missing. I am using Visual Code. I got to a place where I wanted to detach. I detach and open the android folder in Android Studio. I build a signed release APK and install it on my phone. Everything works fine. Now what? What’s the best practice to make new changes?

I want to keep using Visual Code to code. I use exp publish --clear to upload a new bundle but I am not seeing my changes when I build an apk in Android Studio (pointed to the directory that I’m modifying in Visual Code).

I have even deleted my android directory and detached again after making changes. I build the signed apk and install it on my phone and I still do not see any of my changes.

Expo says that wants I detach, I can either use Android Studio or let expo build binaries for me. This link is provided but I don’t think it’s very clear. https://docs.expo.io/versions/latest/guides/building-standalone-apps.html

If I use release channels and use Expo on my phone to scan QR codes on my project site, I can see my changes. But, building the apk does not work. All I have to do is publish a bundle for the QR code to work. Why doesn’t publishing a bundle that the apk points to work the same. If I put the word “blabla” in my CRNA code and expo publish, I should be able to refresh the app and see that word.

When I detach the app with “blabla” in my code, I do not see “blabla” in my Android Studio code at all … so how can I modify my native code directly? Expo documentation says I need to modify the Android Studio code directly but there isn’t any that I see.

Hi - this link on Developing with ExpoKit (the library used in detached projects) should answer several of your questions about making changes.

The link you saw about building standalone apps (https://docs.expo.io/versions/latest/guides/building-standalone-apps.html) is for non-detached apps, since Expo can build binaries for you in that case.

Under continuing with development, there isn’t much information. The instructions are to continue developing with Android Studio. I do not see any of my code in Android studio (in the android directory that “exp detach” created).

If my app is a CRNA, I have nothing but nodejs and html in Visual Code. What gets bundled in exp publish? Do my html changes get included in the bundle? If I make an html change and run exp publish --clear, will the next bundle fetch get those changes, or do I have to change Android Studio code to make those html changes?

The code in Android Studio is the native part of your project that you need to build since you don’t have the Expo Client anymore. Your project JS is still separate and you can use whatever editor you were using.

exp publish bundles your JS in production mode and minifies it and then publishes it to Expo. I’m not sure what HTML you’re referring to – Expo projects typically don’t have HTML. For JS, you don’t need to change the Java code nor recompile it during development to get updates.

This sounds like your project might be going off the beaten path with the HTML (“In your native Xcode and Android Studio projects, you may encounter questions which are no longer within the realm of Expo.” - Detaching to ExpoKit) – all the source (both native and JS) is open and in your project folder after detaching and might be the best place to start investigating more deeply.

Pardon the confusion… I was rather caught up in my issue, and wasn’t thinking when I said ‘html’. I was referring to all of my js files that have UI components from react-native and native-base. I called the components such as html out of pure laziness.

So the JS files are what I’m modifying. Nothing else. Can you walk me through the process of getting my changes into Android Studio so that I can build?

  1. Make a change to a JS file in any editor
  2. Run exp publish --clear
  3. Open Android Studio and build a release apk
  4. Put apk on my phone
  5. Open app

I should see my changes then right?

2 Likes

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