aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs11
-rw-r--r--tests/auto/blackbox/testdata-android/minimal-native/minimal-native.qbs2
-rw-r--r--tests/auto/blackbox/testdata-android/minimal-native/src/main/java/my/minimal/MinimalNative.java (renamed from tests/auto/blackbox/testdata-android/minimal-native/src/main/java/minimal/MinimalNative.java)0
-rw-r--r--tests/auto/blackbox/testdata-android/qml-app/qml-app.qbs2
4 files changed, 14 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;
diff --git a/tests/auto/blackbox/testdata-android/minimal-native/minimal-native.qbs b/tests/auto/blackbox/testdata-android/minimal-native/minimal-native.qbs
index 8cdda7a3c..570152707 100644
--- a/tests/auto/blackbox/testdata-android/minimal-native/minimal-native.qbs
+++ b/tests/auto/blackbox/testdata-android/minimal-native/minimal-native.qbs
@@ -2,6 +2,8 @@ CppApplication {
name: "minimalnative"
qbs.buildVariant: "release"
Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" }
+ Android.sdk.packageName: "my.minimalnative"
+ Android.sdk.apkBaseName: name
Android.ndk.appStl: "stlport_shared"
files: "src/main/native/native.c"
Group {
diff --git a/tests/auto/blackbox/testdata-android/minimal-native/src/main/java/minimal/MinimalNative.java b/tests/auto/blackbox/testdata-android/minimal-native/src/main/java/my/minimal/MinimalNative.java
index 1464d2593..1464d2593 100644
--- a/tests/auto/blackbox/testdata-android/minimal-native/src/main/java/minimal/MinimalNative.java
+++ b/tests/auto/blackbox/testdata-android/minimal-native/src/main/java/my/minimal/MinimalNative.java
diff --git a/tests/auto/blackbox/testdata-android/qml-app/qml-app.qbs b/tests/auto/blackbox/testdata-android/qml-app/qml-app.qbs
index 56b9d6eaf..e91a14902 100644
--- a/tests/auto/blackbox/testdata-android/qml-app/qml-app.qbs
+++ b/tests/auto/blackbox/testdata-android/qml-app/qml-app.qbs
@@ -6,6 +6,8 @@ QtApplication {
condition: qbs.targetOS.contains("android")
Qt.android_support.extraPrefixDirs: path
}
+ Android.sdk.packageName: "my.qmlapp"
+ Android.sdk.apkBaseName: name
property stringList qmlImportPaths: path
files: [
"main.cpp",