CB-13580: fix build for multiple apks (different product flavors)

This commit is contained in:
David Strauß 2017-11-16 01:27:20 +01:00
parent 83601dca2f
commit aaeb630eb1
2 changed files with 20 additions and 3 deletions

View File

@ -93,15 +93,23 @@ GenericBuilder.prototype.extractRealProjectNameFromManifest = function () {
module.exports = GenericBuilder;
function apkSorter (fileA, fileB) {
// De-prioritize arch specific builds
var archSpecificRE = /-x86|-arm/;
if (archSpecificRE.exec(fileA)) {
return 1;
} else if (archSpecificRE.exec(fileB)) {
return -1;
}
// De-prioritize unsigned builds
var unsignedRE = /-unsigned/;
if (unsignedRE.exec(fileA)) {
return 1;
} else if (unsignedRE.exec(fileB)) {
return -1;
}
}
var timeDiff = fs.statSync(fileA).mtime - fs.statSync(fileB).mtime;
var timeDiff = fs.statSync(fileB).mtime - fs.statSync(fileA).mtime;
return timeDiff === 0 ? fileA.length - fileB.length : timeDiff;
}
@ -109,7 +117,14 @@ function findOutputApksHelper (dir, build_type, arch) {
var shellSilent = shell.config.silent;
shell.config.silent = true;
var ret = shell.ls(path.join(dir, build_type, '*.apk')).filter(function (candidate) {
// list directory recursively
var ret = shell.ls('-R', dir).map(function(file) {
// ls does not include base directory
return path.join(dir, file);
}).filter(function (file) {
// find all APKs
return file.match(/\.apk?$/i);
}).filter(function (candidate) {
var apkName = path.basename(candidate);
// Need to choose between release and debug .apk.
if (build_type === 'debug') {

View File

@ -184,6 +184,8 @@ android {
buildToolsVersion cdvBuildToolsVersion
if (Boolean.valueOf(cdvBuildMultipleApks)) {
flavorDimensions "default"
productFlavors {
armv7 {
versionCode defaultConfig.versionCode*10 + 2