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;
|
||||
const FilePath outputDir = AndroidManager::androidBuildDirectory(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());
|
||||
}
|
||||
m_packagePath = AndroidManager::packagePath(target());
|
||||
|
||||
qCDebug(buildapkstepLog).noquote() << "APK or AAB path:" << m_packagePath.toUserOutput();
|
||||
|
||||
|
@@ -251,7 +251,7 @@ bool AndroidDeployQtStep::init()
|
||||
} else {
|
||||
m_uninstallPreviousPackageRun = true;
|
||||
m_command = AndroidConfigurations::currentConfig().adbToolPath();
|
||||
m_apkPath = AndroidManager::apkPath(target());
|
||||
m_apkPath = AndroidManager::packagePath(target());
|
||||
m_workingDirectory = bc ? AndroidManager::buildDirectory(target()): FilePath();
|
||||
}
|
||||
m_environment = bc ? bc->environment() : Utils::Environment();
|
||||
|
@@ -268,7 +268,31 @@ FilePath AndroidManager::buildDirectory(const Target *target)
|
||||
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 {});
|
||||
|
||||
@@ -279,13 +303,10 @@ FilePath AndroidManager::apkPath(const Target *target)
|
||||
if (!buildApkStep)
|
||||
return {};
|
||||
|
||||
QString apkPath("build/outputs/apk/android-build-");
|
||||
if (buildApkStep->signPackage())
|
||||
apkPath += QLatin1String("release.apk");
|
||||
else
|
||||
apkPath += QLatin1String("debug.apk");
|
||||
const QString subPath = packageSubPath(buildApkStep->buildAAB() ? Aab : Apk,
|
||||
bc->buildType(), buildApkStep->signPackage());
|
||||
|
||||
return androidBuildDirectory(target) / apkPath;
|
||||
return androidBuildDirectory(target) / "build/outputs" / subPath;
|
||||
}
|
||||
|
||||
bool AndroidManager::matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis)
|
||||
|
@@ -78,7 +78,7 @@ public:
|
||||
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
|
||||
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
|
||||
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 QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
|
||||
static ProjectExplorer::Abi androidAbi2Abi(const QString &androidAbi);
|
||||
|
Reference in New Issue
Block a user