From 8f7bc1ffbb7ec8238cfa13c164a177f59789dab8 Mon Sep 17 00:00:00 2001 From: Steve Gill Date: Fri, 31 Jul 2015 16:32:41 -0700 Subject: [PATCH] CB-9428 update script now bumps up minSdkVersion to 14 if it is less than that. --- bin/lib/create.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/bin/lib/create.js b/bin/lib/create.js index 08158701..e804b6e8 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -290,12 +290,31 @@ function extractProjectNameFromManifest(projectPath) { return m[1]; } +// Cordova-android updates sometimes drop support for older versions. Need to update minSDK in existing projects. +function updateMinSDKInManifest(projectPath) { + var manifestPath = path.join(projectPath, 'AndroidManifest.xml'); + var manifestData = fs.readFileSync(manifestPath, 'utf8'); + var minSDKVersion = 14; + + //grab minSdkVersion from Android. + var m = /android:minSdkVersion\s*=\s*"(.*?)"/i.exec(manifestData); + if (!m) { + throw new Error('Could not find minSDKVersion in ' + manifestPath); + } + //if minSDKVersion in Android.manifest is less than our current min, replace it + if(Number(m[1]) < minSDKVersion) { + console.log('Updating minSdkVersion from ' + m[1] + ' to ' + minSDKVersion + ' in AndroidManifest.xml'); + shell.sed('-i', /android:minSdkVersion\s*=\s*"(.*?)"/, 'android:minSdkVersion="'+minSDKVersion+'"', manifestPath); + } +} + // Returns a promise. exports.updateProject = function(projectPath, shared) { return Q() .then(function() { var projectName = extractProjectNameFromManifest(projectPath); var target_api = check_reqs.get_target(); + updateMinSDKInManifest(projectPath); copyJsAndLibrary(projectPath, shared, projectName); copyScripts(projectPath); copyBuildRules(projectPath);