@@ -1393,6 +1393,14 @@ void EditorExportPlatformAndroid::_fix_manifest(const Ref<EditorExportPreset> &p
13931393 p_manifest = ret;
13941394}
13951395
1396+ String EditorExportPlatformAndroid::_get_keystore_path (const Ref<EditorExportPreset> &p_preset, bool p_debug) {
1397+ String keystore_preference = p_debug ? " keystore/debug" : " keystore/release" ;
1398+ String keystore_env_variable = p_debug ? ENV_ANDROID_KEYSTORE_DEBUG_PATH : ENV_ANDROID_KEYSTORE_RELEASE_PATH;
1399+ String keystore_path = p_preset->get_or_env (keystore_preference, keystore_env_variable);
1400+
1401+ return ProjectSettings::get_singleton ()->globalize_path (keystore_path).simplify_path ();
1402+ }
1403+
13961404String EditorExportPlatformAndroid::_parse_string (const uint8_t *p_bytes, bool p_utf8) {
13971405 uint32_t offset = 0 ;
13981406 uint32_t len = 0 ;
@@ -2347,10 +2355,10 @@ static bool has_valid_keystore_credentials(String &r_error_str, const String &p_
23472355}
23482356
23492357bool EditorExportPlatformAndroid::has_valid_username_and_password (const Ref<EditorExportPreset> &p_preset, String &r_error) {
2350- String dk = p_preset-> get_or_env ( " keystore/debug " , ENV_ANDROID_KEYSTORE_DEBUG_PATH );
2358+ String dk = _get_keystore_path (p_preset, true );
23512359 String dk_user = p_preset->get_or_env (" keystore/debug_user" , ENV_ANDROID_KEYSTORE_DEBUG_USER);
23522360 String dk_password = p_preset->get_or_env (" keystore/debug_password" , ENV_ANDROID_KEYSTORE_DEBUG_PASS);
2353- String rk = p_preset-> get_or_env ( " keystore/release " , ENV_ANDROID_KEYSTORE_RELEASE_PATH );
2361+ String rk = _get_keystore_path (p_preset, false );
23542362 String rk_user = p_preset->get_or_env (" keystore/release_user" , ENV_ANDROID_KEYSTORE_RELEASE_USER);
23552363 String rk_password = p_preset->get_or_env (" keystore/release_password" , ENV_ANDROID_KEYSTORE_RELEASE_PASS);
23562364
@@ -2449,7 +2457,7 @@ bool EditorExportPlatformAndroid::has_valid_export_configuration(const Ref<Edito
24492457
24502458 // Validate the rest of the export configuration.
24512459
2452- String dk = p_preset-> get_or_env ( " keystore/debug " , ENV_ANDROID_KEYSTORE_DEBUG_PATH );
2460+ String dk = _get_keystore_path (p_preset, true );
24532461 String dk_user = p_preset->get_or_env (" keystore/debug_user" , ENV_ANDROID_KEYSTORE_DEBUG_USER);
24542462 String dk_password = p_preset->get_or_env (" keystore/debug_password" , ENV_ANDROID_KEYSTORE_DEBUG_PASS);
24552463
@@ -2467,7 +2475,7 @@ bool EditorExportPlatformAndroid::has_valid_export_configuration(const Ref<Edito
24672475 }
24682476 }
24692477
2470- String rk = p_preset-> get_or_env ( " keystore/release " , ENV_ANDROID_KEYSTORE_RELEASE_PATH );
2478+ String rk = _get_keystore_path (p_preset, false );
24712479 String rk_user = p_preset->get_or_env (" keystore/release_user" , ENV_ANDROID_KEYSTORE_RELEASE_USER);
24722480 String rk_password = p_preset->get_or_env (" keystore/release_password" , ENV_ANDROID_KEYSTORE_RELEASE_PASS);
24732481
@@ -2724,7 +2732,7 @@ void EditorExportPlatformAndroid::get_command_line_flags(const Ref<EditorExportP
27242732Error EditorExportPlatformAndroid::sign_apk (const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &export_path, EditorProgress &ep) {
27252733 int export_format = int (p_preset->get (" gradle_build/export_format" ));
27262734 String export_label = export_format == EXPORT_FORMAT_AAB ? " AAB" : " APK" ;
2727- String release_keystore = p_preset-> get_or_env ( " keystore/release " , ENV_ANDROID_KEYSTORE_RELEASE_PATH );
2735+ String release_keystore = _get_keystore_path (p_preset, false );
27282736 String release_username = p_preset->get_or_env (" keystore/release_user" , ENV_ANDROID_KEYSTORE_RELEASE_USER);
27292737 String release_password = p_preset->get_or_env (" keystore/release_password" , ENV_ANDROID_KEYSTORE_RELEASE_PASS);
27302738 String target_sdk_version = p_preset->get (" gradle_build/target_sdk" );
@@ -2746,7 +2754,7 @@ Error EditorExportPlatformAndroid::sign_apk(const Ref<EditorExportPreset> &p_pre
27462754 String password;
27472755 String user;
27482756 if (p_debug) {
2749- keystore = p_preset-> get_or_env ( " keystore/debug " , ENV_ANDROID_KEYSTORE_DEBUG_PATH );
2757+ keystore = _get_keystore_path (p_preset, true );
27502758 password = p_preset->get_or_env (" keystore/debug_password" , ENV_ANDROID_KEYSTORE_DEBUG_PASS);
27512759 user = p_preset->get_or_env (" keystore/debug_user" , ENV_ANDROID_KEYSTORE_DEBUG_USER);
27522760
@@ -3231,7 +3239,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
32313239
32323240 if (should_sign) {
32333241 if (p_debug) {
3234- String debug_keystore = p_preset-> get_or_env ( " keystore/debug " , ENV_ANDROID_KEYSTORE_DEBUG_PATH );
3242+ String debug_keystore = _get_keystore_path (p_preset, true );
32353243 String debug_password = p_preset->get_or_env (" keystore/debug_password" , ENV_ANDROID_KEYSTORE_DEBUG_PASS);
32363244 String debug_user = p_preset->get_or_env (" keystore/debug_user" , ENV_ANDROID_KEYSTORE_DEBUG_USER);
32373245
@@ -3253,7 +3261,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
32533261 cmdline.push_back (" -Pdebug_keystore_password=" + debug_password); // argument to specify the debug keystore password.
32543262 } else {
32553263 // Pass the release keystore info as well
3256- String release_keystore = p_preset-> get_or_env ( " keystore/release " , ENV_ANDROID_KEYSTORE_RELEASE_PATH );
3264+ String release_keystore = _get_keystore_path (p_preset, false );
32573265 String release_username = p_preset->get_or_env (" keystore/release_user" , ENV_ANDROID_KEYSTORE_RELEASE_USER);
32583266 String release_password = p_preset->get_or_env (" keystore/release_password" , ENV_ANDROID_KEYSTORE_RELEASE_PASS);
32593267 if (release_keystore.is_relative_path ()) {
0 commit comments