forked from qt-creator/qt-creator
Android: Fix opening of package location after build
Fixes and consolidates into one common function the package path retrieval for the eight combinations of: (apk|aab)(debug|release)(signed|unsigned) Fixes: QTCREATORBUG-28791 Change-Id: I6e8c54f555b95aca448032783938f9f7f89bc653 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
@@ -533,15 +533,7 @@ bool AndroidBuildApkStep::init()
|
|||||||
|
|
||||||
m_openPackageLocationForRun = m_openPackageLocation;
|
m_openPackageLocationForRun = m_openPackageLocation;
|
||||||
const FilePath outputDir = AndroidManager::androidBuildDirectory(target());
|
const FilePath outputDir = AndroidManager::androidBuildDirectory(target());
|
||||||
|
m_packagePath = AndroidManager::packagePath(target());
|
||||||
if (m_buildAAB) {
|
|
||||||
const QString bt = buildType() == BuildConfiguration::Release ? QLatin1String("release")
|
|
||||||
: QLatin1String("debug");
|
|
||||||
m_packagePath = outputDir.pathAppended(
|
|
||||||
QString("build/outputs/bundle/%1/android-build-%1.aab").arg(bt));
|
|
||||||
} else {
|
|
||||||
m_packagePath = AndroidManager::apkPath(target());
|
|
||||||
}
|
|
||||||
|
|
||||||
qCDebug(buildapkstepLog).noquote() << "APK or AAB path:" << m_packagePath.toUserOutput();
|
qCDebug(buildapkstepLog).noquote() << "APK or AAB path:" << m_packagePath.toUserOutput();
|
||||||
|
|
||||||
|
@@ -251,7 +251,7 @@ bool AndroidDeployQtStep::init()
|
|||||||
} else {
|
} else {
|
||||||
m_uninstallPreviousPackageRun = true;
|
m_uninstallPreviousPackageRun = true;
|
||||||
m_command = AndroidConfigurations::currentConfig().adbToolPath();
|
m_command = AndroidConfigurations::currentConfig().adbToolPath();
|
||||||
m_apkPath = AndroidManager::apkPath(target());
|
m_apkPath = AndroidManager::packagePath(target());
|
||||||
m_workingDirectory = bc ? AndroidManager::buildDirectory(target()): FilePath();
|
m_workingDirectory = bc ? AndroidManager::buildDirectory(target()): FilePath();
|
||||||
}
|
}
|
||||||
m_environment = bc ? bc->environment() : Utils::Environment();
|
m_environment = bc ? bc->environment() : Utils::Environment();
|
||||||
|
@@ -268,7 +268,31 @@ FilePath AndroidManager::buildDirectory(const Target *target)
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath AndroidManager::apkPath(const Target *target)
|
enum PackageFormat {
|
||||||
|
Apk,
|
||||||
|
Aab
|
||||||
|
};
|
||||||
|
|
||||||
|
QString packageSubPath(PackageFormat format, BuildConfiguration::BuildType buildType, bool sig)
|
||||||
|
{
|
||||||
|
const bool deb = (buildType == BuildConfiguration::Debug);
|
||||||
|
|
||||||
|
if (format == Apk) {
|
||||||
|
if (deb)
|
||||||
|
return sig ? packageSubPath(Apk, BuildConfiguration::Release, true) // Intentional
|
||||||
|
: QLatin1String("apk/debug/android-build-debug.apk");
|
||||||
|
else
|
||||||
|
return QLatin1String(sig ? "apk/release/android-build-release-signed.apk"
|
||||||
|
: "apk/release/android-build-release-unsigned.apk");
|
||||||
|
} else {
|
||||||
|
return QLatin1String(deb ? "bundle/debug/android-build-debug.aab"
|
||||||
|
: "bundle/release/android-build-release.aab");
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
FilePath AndroidManager::packagePath(const Target *target)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(target, return {});
|
QTC_ASSERT(target, return {});
|
||||||
|
|
||||||
@@ -279,13 +303,10 @@ FilePath AndroidManager::apkPath(const Target *target)
|
|||||||
if (!buildApkStep)
|
if (!buildApkStep)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
QString apkPath("build/outputs/apk/android-build-");
|
const QString subPath = packageSubPath(buildApkStep->buildAAB() ? Aab : Apk,
|
||||||
if (buildApkStep->signPackage())
|
bc->buildType(), buildApkStep->signPackage());
|
||||||
apkPath += QLatin1String("release.apk");
|
|
||||||
else
|
|
||||||
apkPath += QLatin1String("debug.apk");
|
|
||||||
|
|
||||||
return androidBuildDirectory(target) / apkPath;
|
return androidBuildDirectory(target) / "build/outputs" / subPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidManager::matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis)
|
bool AndroidManager::matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis)
|
||||||
|
@@ -78,7 +78,7 @@ public:
|
|||||||
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
|
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
|
||||||
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
|
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
|
||||||
static Utils::FilePath manifestSourcePath(const ProjectExplorer::Target *target);
|
static Utils::FilePath manifestSourcePath(const ProjectExplorer::Target *target);
|
||||||
static Utils::FilePath apkPath(const ProjectExplorer::Target *target);
|
static Utils::FilePath packagePath(const ProjectExplorer::Target *target);
|
||||||
static bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis);
|
static bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis);
|
||||||
static QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
|
static QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
|
||||||
static ProjectExplorer::Abi androidAbi2Abi(const QString &androidAbi);
|
static ProjectExplorer::Abi androidAbi2Abi(const QString &androidAbi);
|
||||||
|
Reference in New Issue
Block a user