aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-02-18 17:38:37 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-02-27 11:55:49 +0000
commit50eb4d183ccb526874cefe73c7f4c2129769aa4a (patch)
treeb5fc6895c8d05f9e76c714274c33083425646464 /share/qbs/modules
parent4fd17d627106fde01284075038e15cc0680611bc (diff)
Android: Check for valid package name upon package creation
That's nicer than letting users get a cryptic error message when they try to install their package on the device. Change-Id: Ie5321a28475f879f991c4440c7e64c1c3ebd5a9d Fixes: QBS-1428 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'share/qbs/modules')
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs11
1 files changed, 10 insertions, 1 deletions
diff --git a/share/qbs/modules/Android/sdk/sdk.qbs b/share/qbs/modules/Android/sdk/sdk.qbs
index 79ec9ad81..14ad92fdf 100644
--- a/share/qbs/modules/Android/sdk/sdk.qbs
+++ b/share/qbs/modules/Android/sdk/sdk.qbs
@@ -257,7 +257,16 @@ Module {
var rootElem = manifestData.documentElement();
if (!rootElem || !rootElem.isElement() || rootElem.tagName() != "manifest")
throw "No manifest tag found in '" + input.filePath + "'.";
- rootElem.setAttribute("package", product.Android.sdk.packageName);
+
+ // Quick sanity check. Don't try to be fancy; let's not risk rejecting valid names.
+ var packageName = product.Android.sdk.packageName;
+ if (!packageName.match(/^[^.]+(?:\.[^.]+)+$/)) {
+ throw "Package name '" + packageName + "' is not valid. Please set "
+ + "Android.sdk.packageName to a name following the "
+ + "'com.mycompany.myproduct' pattern."
+ }
+ rootElem.setAttribute("package", packageName);
+
manifestData.save(output.filePath, 4);
}
return cmd;