Inconsistent package name on local prebuild and EAS prebuild

On my local environment, when I run “expo prebuild” or “npx expo prebuild”, the generated package directory is different from the package name specified in app.json.

For example, in app.json, is something like “com.ExampleApp”. When I run “expo prebuild”, the directory structure looks like this: android/app/src/main/java/com/exampleapp.

I have created a config plugin that adds a Java file inside android/app/src/main/java/com/exampleapp/ using withDangerousMod. It works on my local environment, but when I build the app using EAS, I found that the directory structure looks like this: android/app/src/main/java/com/ExampleApp. Due to this, I’m not able to create the file.

I can’t change the package name because the app belongs to the company that I’m employed by. Is there any way to make the package name and the directory structure consistent?

I’m on the managed workflow, eas-cli/3.9.2, Windows 11.

I’m not sure what is the reason for the different behavior. I see 2 potential options:

  • If you are on SDK 46 or newer you are using expo prebuild locally, by EAS Build is running npx expo prebuild. You should use npx expo prebuild instead if that is the case.
  • It might be caused by windows case insensitive file system, if that is the case, then write your plugin to work with android/app/src/main/java/com/ExampleApp and it should automatically work with android/app/src/main/java/com/exampleapp.

It might be worth trying it in WSL to see what the behaviour is there. The Android build servers run Ubuntu Linux, so WSL with Ubuntu would be closer to the environment on the build servers.

The behavior is seen on both expo prebuild and npx expo prebuild. And you were right about the windows case insensitive file system. I updated the plugin to use ExampleApp in the path and it works. Thanks!

Thanks for the suggestion. On WSL, the behavior is the same as on EAS. For now, I continue to use @wkozyra 's suggestion on Windows 11.

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