@saltcorn/mobile-builder 1.1.0-beta.11 → 1.1.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docker/Dockerfile CHANGED
@@ -18,40 +18,36 @@ RUN android_sdk/cmdline-tools/13.0/bin/sdkmanager "build-tools;34.0.0"
18
18
  RUN wget -q https://services.gradle.org/distributions/gradle-8.4-all.zip \
19
19
  && unzip gradle-8.4-all.zip -d /opt
20
20
 
21
- RUN npm install -g cordova@12.0.0
22
-
23
21
  # create an empty project, the first init seems to take longer
24
22
  WORKDIR /init_project
25
- RUN cordova create project
26
- WORKDIR /init_project/project
27
- # download plugins while building
28
- # so that we can add them later via file reference
29
- RUN cordova plugin add cordova-sqlite-ext@6.0.0
30
- RUN cordova plugin add cordova-plugin-file@8.1.0
31
- RUN cordova plugin add cordova-plugin-inappbrowser@6.0.0
32
- RUN cordova plugin add cordova-plugin-network-information@3.0.0
33
- RUN cordova plugin add cordova-plugin-geolocation@5.0.0
34
- RUN cordova plugin add cordova-plugin-camera@7.0.0
35
- RUN cordova platform add android@^13.0.0
23
+ RUN npm init -y
24
+ RUN mkdir www
25
+ RUN touch www/index.html
26
+ RUN npm install @capacitor/cli @capacitor/core @capacitor/android
27
+ RUN npx cap init MyApp com.example.myapp --web-dir www
28
+ RUN npx cap add android
29
+ RUN npx cap sync
30
+
36
31
  ENV ANDROID_SDK_ROOT=/android_sdk
37
32
  ENV ANDROID_HOME=/android_sdk
38
33
  ENV GRADLE_HOME=/opt/gradle-8.4
39
34
  ENV PATH=$PATH:/opt/gradle-8.4/bin
40
- # stop gradle from downloading itself
41
- ENV CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=file\:/gradle-8.4-all.zip
42
- RUN cordova build android
43
35
 
44
- # due to a bug in npm that has been addressed since then
45
- # some files in '/root/.npm' are owned by root
46
- RUN chown -R 1000:1000 "/root/.npm"
47
- RUN chmod -R o+rwx "/root/.npm"
36
+ RUN cat <<EOF > /init_project/android/gradle/wrapper/gradle-wrapper.properties
37
+ distributionBase=GRADLE_USER_HOME
38
+ distributionPath=wrapper/dists
39
+ distributionUrl=file\:/gradle-8.4-all.zip
40
+ networkTimeout=10000
41
+ validateDistributionUrl=true
42
+ zipStoreBase=GRADLE_USER_HOME
43
+ zipStorePath=wrapper/dists
44
+ EOF
45
+
46
+ WORKDIR /init_project/android
47
+ RUN ./gradlew assembleDebug
48
48
 
49
- # prepare entry point
50
49
  WORKDIR /
51
50
  COPY entry.bash ./
52
51
  RUN chmod u+x entry.bash
53
52
 
54
- RUN chmod o+rwx ~
55
- RUN chmod -R o+rwx ~/.config
56
-
57
53
  ENTRYPOINT ["./entry.bash"]
package/docker/entry.bash CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
+ set -e
4
+
3
5
  BUILD_TYPE="$1"
4
6
  KEYSTORE_FILE="$2"
5
7
  KEYSTORE_ALIAS="$3"
@@ -15,38 +17,76 @@ export ANDROID_SDK_ROOT=/android_sdk
15
17
  export ANDROID_HOME=/android_sdk
16
18
  export GRADLE_HOME=/opt/gradle-8.4
17
19
  export PATH=$PATH:/opt/gradle-8.4/bin
18
- # stop gradle from downloading itself
19
- export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=file\:/gradle-8.4-all.zip
20
20
 
21
21
  cd /saltcorn-mobile-app
22
- echo "adding android platform"
23
- cordova platform add android
24
- echo "writing gradle.properties"
25
- cat <<EOF > /saltcorn-mobile-app/platforms/android/gradle.properties
26
- org.gradle.jvmargs=-Xmx2048m
27
- android.useAndroidX=true
28
- android.enableJetifier=true
22
+ npm install @capacitor/cli @capacitor/core @capacitor/android
23
+ npx cap add android
24
+ npx capacitor-assets generate
25
+ npx cap sync
26
+
27
+ npm install cordova-plugin-file@8.1.2
28
+ npm install cordova-plugin-inappbrowser@6.0.0
29
+
30
+ # data extraction rules
31
+ cat <<EOF > /saltcorn-mobile-app/android/app/src/main/res/xml/data_extraction_rules.xml
32
+ <?xml version="1.0" encoding="utf-8"?>
33
+ <data-extraction-rules>
34
+ <cloud-backup>
35
+ <exclude domain="root" />
36
+ <exclude domain="database" />
37
+ <exclude domain="sharedpref" />
38
+ <exclude domain="external" />
39
+ </cloud-backup>
40
+ <device-transfer>
41
+ <exclude domain="root" />
42
+ <exclude domain="database" />
43
+ <exclude domain="sharedpref" />
44
+ <exclude domain="external" />
45
+ </device-transfer>
46
+ </data-extraction-rules>
47
+ EOF
48
+
49
+ # network security config
50
+ cat <<EOF > /saltcorn-mobile-app/android/app/src/main/res/xml/network_security_config.xml
51
+ <?xml version="1.0" encoding="utf-8"?>
52
+ <network-security-config>
53
+ <domain-config cleartextTrafficPermitted="true">
54
+ <domain includeSubdomains="true">10.0.2.2</domain>
55
+ </domain-config>
56
+ </network-security-config>
57
+ EOF
58
+
59
+ npm run modify-android-manifest
60
+ npx cap sync
61
+
62
+ # gradle wrapper
63
+ cat <<EOF > /saltcorn-mobile-app/android/gradle/wrapper/gradle-wrapper.properties
64
+ distributionBase=GRADLE_USER_HOME
65
+ distributionPath=wrapper/dists
29
66
  distributionUrl=file\:/gradle-8.4-all.zip
67
+ networkTimeout=10000
68
+ validateDistributionUrl=true
69
+ zipStoreBase=GRADLE_USER_HOME
70
+ zipStorePath=wrapper/dists
30
71
  EOF
31
72
 
32
- echo "adding plugins"
33
- cordova plugin add /init_project/project/plugins/cordova-plugin-inappbrowser
34
- cordova plugin add /init_project/project/plugins/cordova-plugin-file
35
- cordova plugin add /init_project/project/plugins/cordova-sqlite-ext
36
- cordova plugin add /init_project/project/plugins/cordova-plugin-network-information
37
- cordova plugin add /init_project/project/plugins/cordova-plugin-geolocation
38
- cordova plugin add /init_project/project/plugins/cordova-plugin-camera
73
+ npm run build
74
+ npx cap sync
39
75
 
40
- echo "calling cordova build"
41
- cordova build android --verbose
76
+ # copy prepopulated db
77
+ mkdir -p /saltcorn-mobile-app/android/app/src/main/assets/public/assets/databases
78
+ cp /saltcorn-mobile-app/www/scdb.sqlite /saltcorn-mobile-app/android/app/src/main/assets/public/assets/databases/prepopulated.db
42
79
 
80
+ cd ./android
43
81
 
82
+ # modify gradle config for keystore
44
83
  if [ -n "$KEYSTORE_FILE" ]; then
45
84
  echo "building signed app with keystore"
46
- cordova build android --"$BUILD_TYPE" --verbose -- --keystore="$KEYSTORE_FILE" --alias="$KEYSTORE_ALIAS" --storePassword="$KEYSTORE_PASSWORD" --password="$KEYSTORE_PASSWORD"
47
- else
48
- echo "building unsigned app"
49
- cordova build android --"$BUILD_TYPE" --verbose
85
+ npm run modify-gradle-cfg -- --keystore-file=$KEYSTORE_FILE --keystore-alias=$KEYSTORE_ALIAS --keystore-password=$KEYSTORE_PASSWORD
50
86
  fi
51
87
 
52
- chmod -R o+rwx /saltcorn-mobile-app
88
+ if [ "$BUILD_TYPE" == "release" ]; then
89
+ ./gradlew assembleRelease
90
+ else
91
+ ./gradlew assembleDebug
92
+ fi
package/package.json CHANGED
@@ -3,20 +3,20 @@
3
3
  "description": "plugin to to build a mobile app from a tenant application",
4
4
  "homepage": "https://saltcorn.com",
5
5
  "repository": "github:saltcorn/saltcorn",
6
- "version": "1.1.0-beta.11",
6
+ "version": "1.1.0-beta.12",
7
7
  "author": "Christian Hugo",
8
8
  "scripts": {
9
9
  "test": "jest ./tests/ --runInBand",
10
10
  "build": "webpack --mode development"
11
11
  },
12
12
  "dependencies": {
13
- "@saltcorn/markup": "1.1.0-beta.11",
14
- "@saltcorn/data": "1.1.0-beta.11",
15
- "@saltcorn/db-common": "1.1.0-beta.11",
16
- "@saltcorn/server": "1.1.0-beta.11",
17
- "@saltcorn/base-plugin": "1.1.0-beta.11",
18
- "@saltcorn/sbadmin2": "1.1.0-beta.11",
19
- "@saltcorn/mobile-app": "1.1.0-beta.11",
13
+ "@saltcorn/markup": "1.1.0-beta.12",
14
+ "@saltcorn/data": "1.1.0-beta.12",
15
+ "@saltcorn/db-common": "1.1.0-beta.12",
16
+ "@saltcorn/server": "1.1.0-beta.12",
17
+ "@saltcorn/base-plugin": "1.1.0-beta.12",
18
+ "@saltcorn/sbadmin2": "1.1.0-beta.12",
19
+ "@saltcorn/mobile-app": "1.1.0-beta.12",
20
20
  "fs-extra": "^10.0.1",
21
21
  "live-plugin-manager": "^0.17.1",
22
22
  "resize-with-sharp-or-jimp": "0.1.8",