Skip to content

Conversation

@m4gr3d
Copy link
Contributor

@m4gr3d m4gr3d commented Dec 2, 2025

The project is setup in Android Studio with three buildtypes:

  • release for release builds of the engine
  • debug for debug builds of the engine with dev_mode, dev_build, and debug_symbols disabled
  • dev for debug builds of the engine with dev_mode, dev_build, and debug_symbols enabled

This PR deprecates and removes the dev buildtype and instead enables dev_mode, dev_build, and debug_symbols for the debug buildtype when building with Android Studio.

The release buildtype has also been updated such that a release build built with Android Studio and signed with non-production keys can be installed side-by-side with a production-signed release (e.g: from the store).

TODO:

  • Update the Android Studio set up documentation
  • Update the Android Studio debugging instructions

@m4gr3d m4gr3d added this to the 4.7 milestone Dec 2, 2025
@m4gr3d m4gr3d requested a review from a team as a code owner December 2, 2025 19:45
@m4gr3d m4gr3d requested a review from a team as a code owner December 2, 2025 19:45
Copy link
Member

@Alex2782 Alex2782 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you also want to update the documentation (TODOs) in this PR?

At first glance, everything looks okay to me; the Dev builds are no longer listed.

./gradlew tasks --all | grep Dev
app:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
editor:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
lib:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
nativeSrcsConfigs:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
app:deviceCheck - Runs all device checks using Device Providers and Test Servers.
editor:deviceCheck - Runs all device checks using Device Providers and Test Servers.
lib:deviceCheck - Runs all device checks using Device Providers and Test Servers.
nativeSrcsConfigs:deviceCheck - Runs all device checks using Device Providers and Test Servers.

@m4gr3d
Copy link
Contributor Author

m4gr3d commented Dec 2, 2025

Do you also want to update the documentation (TODOs) in this PR?

No the documentation will be updated in their respective PRs against the godot-docs repo.

@mihe
Copy link
Contributor

mihe commented Dec 3, 2025

instead enables dev_mode, dev_build, and debug_symbols for the debug buildtype when building with Android Studio

Is it strictly when building through Android Studio? I'm a bit confused by what this all actually means.

I would expect the following (simplified) commands to produce a distinct, valid and usable output and not interfere at all with eachother, as is the case for the desktop platforms:

scons target=editor # TOOLS_ENABLED, DEBUG_ENABLED
scons target=editor dev_build=yes # TOOLS_ENABLED, DEBUG_ENABLED, DEV_ENABLED
scons target=template_debug # DEBUG_ENABLED
scons target=template_debug dev_build=yes # DEBUG_ENABLED, DEV_ENABLED
scons target=template_release # N/A
scons target=template_release dev_build=yes # DEV_ENABLED

(I have no idea how the Android editor works, so that part might not be applicable here at all.)

Based on your comment I get the sense that a non-dev debug build (i.e. DEBUG_ENABLED but not DEV_ENABLED) isn't a thing on Android as of this PR, and that a dev release build (i.e. DEV_ENABLED but not DEBUG_ENABLED) isn't really a thing, and maybe never was?

@m4gr3d
Copy link
Contributor Author

m4gr3d commented Dec 3, 2025

instead enables dev_mode, dev_build, and debug_symbols for the debug buildtype when building with Android Studio

Is it strictly when building through Android Studio? I'm a bit confused by what this all actually means.

I would expect the following (simplified) commands to produce a distinct, valid and usable output and not interfere at all with eachother, as is the case for the desktop platforms:

scons target=editor # TOOLS_ENABLED, DEBUG_ENABLED
scons target=editor dev_build=yes # TOOLS_ENABLED, DEBUG_ENABLED, DEV_ENABLED
scons target=template_debug # DEBUG_ENABLED
scons target=template_debug dev_build=yes # DEBUG_ENABLED, DEV_ENABLED
scons target=template_release # N/A
scons target=template_release dev_build=yes # DEV_ENABLED

(I have no idea how the Android editor works, so that part might not be applicable here at all.)

Based on your comment I get the sense that a non-dev debug build (i.e. DEBUG_ENABLED but not DEV_ENABLED) isn't a thing on Android as of this PR, and that a dev release build (i.e. DEV_ENABLED but not DEBUG_ENABLED) isn't really a thing, and maybe never was?

Yes it's strictly when building through Android Studio. When doing so, a custom scons build command is generated automatically based on the Android Studio buildtype (see here) and so the permutations are limited to cover the general use-cases when using Android Studio.

When not building through Android Studio, things work as you described.

The project is setup in Android Studio with three buildtypes:
- `release` for release builds of the engine
- `debug` for debug builds of the engine with `dev_mode`, `dev_build`, and `debug_symbols` disabled
- `dev` for debug builds of the engine with `dev_mode`, `dev_build`, and `debug_symbols` enabled

This commit deprecates and removes the `dev` buildtype and instead enables `dev_mode`, `dev_build`, and `debug_symbols` for the `debug` buildtype when building with Android Studio.

The `release` buildtype has also been updated such that a `release` build built with Android Studio and signed with non-production keys can be installed side-by-side with a production-signed release (e.g: from the store).
@m4gr3d m4gr3d force-pushed the deprecate_dev_buildtype branch from d82356b to 571a723 Compare December 3, 2025 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants