aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2022-11-23 19:42:36 +0100
committerAlessandro Portale <alessandro.portale@qt.io>2022-11-30 10:29:29 +0000
commit65f27c765a49288d144d177e1a43d7aaed4d347e (patch)
tree2a2bc48f5eddc2718a6096feb193a13017cf103b
parentd743770493878114c5fe986a8c600f88f3a5c81d (diff)
Android: FilePath-ify certificate handling
Change-Id: Ic7bf25567ac74555926d105c03cdac5a9e49b5a6 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
-rw-r--r--src/plugins/android/androidbuildapkstep.cpp14
-rw-r--r--src/plugins/android/androidbuildapkstep.h2
-rw-r--r--src/plugins/android/androidmanager.cpp17
-rw-r--r--src/plugins/android/androidmanager.h10
4 files changed, 25 insertions, 18 deletions
diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp
index 1cd180efb9..139e35baba 100644
--- a/src/plugins/android/androidbuildapkstep.cpp
+++ b/src/plugins/android/androidbuildapkstep.cpp
@@ -629,12 +629,12 @@ bool AndroidBuildApkStep::verifyKeystorePassword()
return false;
}
- if (AndroidManager::checkKeystorePassword(m_keystorePath.toString(), m_keystorePasswd))
+ if (AndroidManager::checkKeystorePassword(m_keystorePath, m_keystorePasswd))
return true;
bool success = false;
auto verifyCallback = std::bind(&AndroidManager::checkKeystorePassword,
- m_keystorePath.toString(), std::placeholders::_1);
+ m_keystorePath, std::placeholders::_1);
m_keystorePasswd = PasswordInputDialog::getPassword(PasswordInputDialog::KeystorePassword,
verifyCallback, "", &success);
return success;
@@ -642,21 +642,21 @@ bool AndroidBuildApkStep::verifyKeystorePassword()
bool AndroidBuildApkStep::verifyCertificatePassword()
{
- if (!AndroidManager::checkCertificateExists(m_keystorePath.toString(), m_keystorePasswd,
- m_certificateAlias)) {
+ if (!AndroidManager::checkCertificateExists(m_keystorePath, m_keystorePasswd,
+ m_certificateAlias)) {
reportWarningOrError(Tr::tr("Cannot sign the package. Certificate alias %1 does not exist.")
.arg(m_certificateAlias), Task::Error);
return false;
}
- if (AndroidManager::checkCertificatePassword(m_keystorePath.toString(), m_keystorePasswd,
+ if (AndroidManager::checkCertificatePassword(m_keystorePath, m_keystorePasswd,
m_certificateAlias, m_certificatePasswd)) {
return true;
}
bool success = false;
auto verifyCallback = std::bind(&AndroidManager::checkCertificatePassword,
- m_keystorePath.toString(), m_keystorePasswd,
+ m_keystorePath, m_keystorePasswd,
m_certificateAlias, std::placeholders::_1);
m_certificatePasswd = PasswordInputDialog::getPassword(PasswordInputDialog::CertificatePassword,
@@ -867,7 +867,7 @@ QVariantMap AndroidBuildApkStep::toMap() const
return map;
}
-Utils::FilePath AndroidBuildApkStep::keystorePath()
+Utils::FilePath AndroidBuildApkStep::keystorePath() const
{
return m_keystorePath;
}
diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h
index c1f4f19efa..1df17d4200 100644
--- a/src/plugins/android/androidbuildapkstep.h
+++ b/src/plugins/android/androidbuildapkstep.h
@@ -26,7 +26,7 @@ public:
QVariantMap toMap() const override;
// signing
- Utils::FilePath keystorePath();
+ Utils::FilePath keystorePath() const;
void setKeystorePath(const Utils::FilePath &path);
void setKeystorePassword(const QString &pwd);
void setCertificateAlias(const QString &alias);
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index 9fb2834e1a..35d71e5858 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -570,12 +570,14 @@ void AndroidManager::installQASIPackage(Target *target, const FilePath &packageP
Tr::tr("Android package installation failed.\n%1").arg(error));
}
-bool AndroidManager::checkKeystorePassword(const QString &keystorePath, const QString &keystorePasswd)
+bool AndroidManager::checkKeystorePassword(const FilePath &keystorePath,
+ const QString &keystorePasswd)
{
if (keystorePasswd.isEmpty())
return false;
const CommandLine cmd(AndroidConfigurations::currentConfig().keytoolPath(),
- {"-list", "-keystore", keystorePath, "--storepass", keystorePasswd});
+ {"-list", "-keystore", keystorePath.toUserOutput(),
+ "--storepass", keystorePasswd});
QtcProcess proc;
proc.setTimeoutS(10);
proc.setCommand(cmd);
@@ -583,10 +585,13 @@ bool AndroidManager::checkKeystorePassword(const QString &keystorePath, const QS
return proc.result() == ProcessResult::FinishedWithSuccess;
}
-bool AndroidManager::checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd, const QString &alias, const QString &certificatePasswd)
+bool AndroidManager::checkCertificatePassword(const FilePath &keystorePath,
+ const QString &keystorePasswd,
+ const QString &alias,
+ const QString &certificatePasswd)
{
// assumes that the keystore password is correct
- QStringList arguments = {"-certreq", "-keystore", keystorePath,
+ QStringList arguments = {"-certreq", "-keystore", keystorePath.toUserOutput(),
"--storepass", keystorePasswd, "-alias", alias, "-keypass"};
if (certificatePasswd.isEmpty())
arguments << keystorePasswd;
@@ -600,11 +605,11 @@ bool AndroidManager::checkCertificatePassword(const QString &keystorePath, const
return proc.result() == ProcessResult::FinishedWithSuccess;
}
-bool AndroidManager::checkCertificateExists(const QString &keystorePath,
+bool AndroidManager::checkCertificateExists(const FilePath &keystorePath,
const QString &keystorePasswd, const QString &alias)
{
// assumes that the keystore password is correct
- QStringList arguments = { "-list", "-keystore", keystorePath,
+ QStringList arguments = { "-list", "-keystore", keystorePath.toUserOutput(),
"--storepass", keystorePasswd, "-alias", alias };
QtcProcess proc;
diff --git a/src/plugins/android/androidmanager.h b/src/plugins/android/androidmanager.h
index 6cbe2c0cf5..ff795ae385 100644
--- a/src/plugins/android/androidmanager.h
+++ b/src/plugins/android/androidmanager.h
@@ -87,11 +87,13 @@ public:
static void installQASIPackage(ProjectExplorer::Target *target, const Utils::FilePath &packagePath);
- static bool checkKeystorePassword(const QString &keystorePath, const QString &keystorePasswd);
- static bool checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd,
+ static bool checkKeystorePassword(const Utils::FilePath &keystorePath,
+ const QString &keystorePasswd);
+ static bool checkCertificatePassword(const Utils::FilePath &keystorePath,
+ const QString &keystorePasswd,
const QString &alias, const QString &certificatePasswd);
- static bool checkCertificateExists(const QString &keystorePath, const QString &keystorePasswd,
- const QString &alias);
+ static bool checkCertificateExists(const Utils::FilePath &keystorePath,
+ const QString &keystorePasswd, const QString &alias);
static bool updateGradleProperties(ProjectExplorer::Target *target, const QString &buildKey);
static QProcess *runAdbCommandDetached(const QStringList &args, QString *err = nullptr,