Skip to content

Commit 133d036

Browse files
committed
Merge pull request godotengine#90603 from m4gr3d/fix_keystore_path_resolution
Fix issue with resolving the path for the Android keystore file
2 parents 3a57f10 + 6fd5238 commit 133d036

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

platform/android/export/export_plugin.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
13961404
String 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

23492357
bool 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
27242732
Error 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()) {

platform/android/export/export_plugin.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
166166

167167
void _fix_manifest(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &p_manifest, bool p_give_internet);
168168

169+
static String _get_keystore_path(const Ref<EditorExportPreset> &p_preset, bool p_debug);
170+
169171
static String _parse_string(const uint8_t *p_bytes, bool p_utf8);
170172

171173
void _fix_resources(const Ref<EditorExportPreset> &p_preset, Vector<uint8_t> &r_manifest);

0 commit comments

Comments
 (0)