@saltcorn/mobile-builder 1.1.0-beta.9 → 1.1.0
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/dist/mobile-builder.d.ts +7 -6
- package/dist/mobile-builder.d.ts.map +1 -1
- package/dist/mobile-builder.js +79 -58
- package/dist/mobile-builder.js.map +1 -1
- package/dist/tests/versioncode.test.d.ts +2 -0
- package/dist/tests/versioncode.test.d.ts.map +1 -0
- package/dist/tests/versioncode.test.js +23 -0
- package/dist/tests/versioncode.test.js.map +1 -0
- package/dist/utils/capacitor-helper.d.ts +41 -0
- package/dist/utils/capacitor-helper.d.ts.map +1 -0
- package/dist/utils/capacitor-helper.js +220 -0
- package/dist/utils/capacitor-helper.js.map +1 -0
- package/dist/utils/common-build-utils.d.ts +29 -0
- package/dist/utils/common-build-utils.d.ts.map +1 -1
- package/dist/utils/common-build-utils.js +316 -19
- package/dist/utils/common-build-utils.js.map +1 -1
- package/dist/utils/package-bundle-utils.d.ts +1 -6
- package/dist/utils/package-bundle-utils.d.ts.map +1 -1
- package/dist/utils/package-bundle-utils.js +28 -36
- package/dist/utils/package-bundle-utils.js.map +1 -1
- package/docker/Dockerfile +20 -24
- package/docker/entry.bash +81 -26
- package/package.json +8 -8
- package/dist/utils/cordova_helper.d.ts +0 -43
- package/dist/utils/cordova_helper.d.ts.map +0 -1
- package/dist/utils/cordova_helper.js +0 -194
- package/dist/utils/cordova_helper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-bundle-utils.js","sourceRoot":"","sources":["../../utils/package-bundle-utils.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoD;AACpD,uCAAgF;AAEhF,sEAA8C;AAC9C,iDAA0C;AAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExD;;;;GAIG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAAiB;IAEjB,MAAM,MAAM,GAAG,IAAA,yBAAS,EACtB,KAAK,EACL;QACE,KAAK;QACL,OAAO;QACP,IAAI;QACJ,OAAO;QACP,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO;QACP,UAAU,QAAQ,UAAU;KAC7B,EACD;QACE,GAAG,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,CAAC;KAC/B,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,IAAA,iBAAM,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE;QAClD,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAzBD,4DAyBC;AAED,KAAK,UAAU,eAAe,CAC5B,cAAsB,EACtB,MAAc,EACd,MAAc;IAEd,MAAM,
|
|
1
|
+
{"version":3,"file":"package-bundle-utils.js","sourceRoot":"","sources":["../../utils/package-bundle-utils.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoD;AACpD,uCAAgF;AAEhF,sEAA8C;AAC9C,iDAA0C;AAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExD;;;;GAIG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAAiB;IAEjB,MAAM,MAAM,GAAG,IAAA,yBAAS,EACtB,KAAK,EACL;QACE,KAAK;QACL,OAAO;QACP,IAAI;QACJ,OAAO;QACP,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO;QACP,UAAU,QAAQ,UAAU;KAC7B,EACD;QACE,GAAG,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,CAAC;KAC/B,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,IAAA,iBAAM,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE;QAClD,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAzBD,4DAyBC;AAED,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAChD,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAND,kDAMC;AAED,KAAK,UAAU,eAAe,CAC5B,cAAsB,EACtB,MAAc,EACd,MAAc;IAEd,IAAI,YAAY,GAAG,MAAM,CAAC;IAC1B,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/D,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,UAAG,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAG,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,IAAA,cAAO,EAAC,YAAY,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,IAAA,qBAAU,EAAC,YAAY,CAAC,EAAE;YAC7B,IAAA,oBAAS,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9C;QACD,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,YAAY,CAAC,CAAC;QAC1C,IAAI;YACF,IAAA,mBAAQ,EACN,IAAA,WAAI,EAAC,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,EACxD,IAAA,WAAI,EAAC,YAAY,EAAE,UAAU,CAAC,CAC/B,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,OAAO,YAAY,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAChB;KACF;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,GAAG,CAAC,CAAC;KAClD;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;IAChE,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAA,qBAAU,EAAC,YAAY,CAAC,EAAE;QAC5B,IAAI,CAAC,IAAA,qBAAU,EAAC,YAAY,CAAC,EAAE;YAC7B,IAAA,oBAAS,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9C;QACD,KAAK,MAAM,QAAQ,IAAI,IAAA,sBAAW,EAAC,YAAY,CAAC,EAAE;YAChD,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,IAAA,WAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;SACtE;KACF;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE;YACZ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAChD,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpD,IAAI,MAAM;oBAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,IAAI,GAAG;oBAAE,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,KAAK,UAAU;gBAClB,kBAAkB,CAChB,QAAQ,EACR,IAAA,WAAI,EAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CACpD,CAAC;YAEJ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE;gBAC/C,MAAM,UAAU,GAAG,MAAM,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAClE,IAAI,UAAU;oBACZ,IAAA,mBAAQ,EACN,UAAU,CAAC,QAAQ,EACnB,IAAA,WAAI,EACF,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAC3B,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;aACL;SACF;KACF;AACH,CAAC;AApCD,wCAoCC"}
|
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
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
RUN
|
|
30
|
-
RUN
|
|
31
|
-
RUN
|
|
32
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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,11 +1,15 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
+
set -e
|
|
4
|
+
|
|
3
5
|
BUILD_TYPE="$1"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
APP_VERSION="$2"
|
|
7
|
+
KEYSTORE_FILE="$3"
|
|
8
|
+
KEYSTORE_ALIAS="$4"
|
|
9
|
+
KEYSTORE_PASSWORD="$5"
|
|
7
10
|
|
|
8
11
|
echo "BUILD_TYPE: $BUILD_TYPE"
|
|
12
|
+
echo "APP_VERSION: $APP_VERSION"
|
|
9
13
|
echo "KEYSTORE_FILE: $KEYSTORE_FILE"
|
|
10
14
|
echo "KEYSTORE_ALIAS: $KEYSTORE_ALIAS"
|
|
11
15
|
#echo "KEYSTORE_PASSWORD: $KEYSTORE_PASSWORD"
|
|
@@ -15,38 +19,89 @@ export ANDROID_SDK_ROOT=/android_sdk
|
|
|
15
19
|
export ANDROID_HOME=/android_sdk
|
|
16
20
|
export GRADLE_HOME=/opt/gradle-8.4
|
|
17
21
|
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
22
|
|
|
21
23
|
cd /saltcorn-mobile-app
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
npm install @capacitor/cli @capacitor/core @capacitor/android
|
|
25
|
+
npx cap add android
|
|
26
|
+
npx capacitor-assets generate
|
|
27
|
+
npx cap sync
|
|
28
|
+
|
|
29
|
+
npm install cordova-plugin-file@8.1.2
|
|
30
|
+
npm install cordova-plugin-inappbrowser@6.0.0
|
|
31
|
+
|
|
32
|
+
# data extraction rules
|
|
33
|
+
cat <<EOF > /saltcorn-mobile-app/android/app/src/main/res/xml/data_extraction_rules.xml
|
|
34
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
35
|
+
<data-extraction-rules>
|
|
36
|
+
<cloud-backup>
|
|
37
|
+
<exclude domain="root" />
|
|
38
|
+
<exclude domain="database" />
|
|
39
|
+
<exclude domain="sharedpref" />
|
|
40
|
+
<exclude domain="external" />
|
|
41
|
+
</cloud-backup>
|
|
42
|
+
<device-transfer>
|
|
43
|
+
<exclude domain="root" />
|
|
44
|
+
<exclude domain="database" />
|
|
45
|
+
<exclude domain="sharedpref" />
|
|
46
|
+
<exclude domain="external" />
|
|
47
|
+
</device-transfer>
|
|
48
|
+
</data-extraction-rules>
|
|
49
|
+
EOF
|
|
50
|
+
|
|
51
|
+
# network security config
|
|
52
|
+
cat <<EOF > /saltcorn-mobile-app/android/app/src/main/res/xml/network_security_config.xml
|
|
53
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
54
|
+
<network-security-config>
|
|
55
|
+
<domain-config cleartextTrafficPermitted="true">
|
|
56
|
+
<domain includeSubdomains="true">10.0.2.2</domain>
|
|
57
|
+
</domain-config>
|
|
58
|
+
</network-security-config>
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
npm run modify-android-manifest
|
|
62
|
+
npx cap sync
|
|
63
|
+
|
|
64
|
+
# gradle wrapper
|
|
65
|
+
cat <<EOF > /saltcorn-mobile-app/android/gradle/wrapper/gradle-wrapper.properties
|
|
66
|
+
distributionBase=GRADLE_USER_HOME
|
|
67
|
+
distributionPath=wrapper/dists
|
|
29
68
|
distributionUrl=file\:/gradle-8.4-all.zip
|
|
69
|
+
networkTimeout=10000
|
|
70
|
+
validateDistributionUrl=true
|
|
71
|
+
zipStoreBase=GRADLE_USER_HOME
|
|
72
|
+
zipStorePath=wrapper/dists
|
|
30
73
|
EOF
|
|
31
74
|
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
75
|
+
npm run build
|
|
76
|
+
npx cap sync
|
|
39
77
|
|
|
40
|
-
|
|
41
|
-
|
|
78
|
+
# copy prepopulated db
|
|
79
|
+
mkdir -p /saltcorn-mobile-app/android/app/src/main/assets/public/assets/databases
|
|
80
|
+
cp /saltcorn-mobile-app/www/scdb.sqlite /saltcorn-mobile-app/android/app/src/main/assets/public/assets/databases/prepopulated.db
|
|
42
81
|
|
|
82
|
+
# set app version and code in build.gradle
|
|
83
|
+
npm run modify-gradle-cfg -- --app-version=$APP_VERSION
|
|
43
84
|
|
|
85
|
+
ANDROID_RELEASE_TYPE="AAB"
|
|
86
|
+
if [ "$BUILD_TYPE" == "debug" ]; then
|
|
87
|
+
ANDROID_RELEASE_TYPE="APK"
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
# if KEYSTORE_FILE is not empty
|
|
44
91
|
if [ -n "$KEYSTORE_FILE" ]; then
|
|
45
|
-
echo "building signed app
|
|
46
|
-
|
|
92
|
+
echo "building signed app"
|
|
93
|
+
npx cap build android \
|
|
94
|
+
--androidreleasetype "$ANDROID_RELEASE_TYPE" \
|
|
95
|
+
--keystorepath "/saltcorn-mobile-app/$KEYSTORE_FILE" \
|
|
96
|
+
--keystorepass "$KEYSTORE_PASSWORD" \
|
|
97
|
+
--keystorealias "$KEYSTORE_ALIAS" \
|
|
98
|
+
--keystorealiaspass "$KEYSTORE_PASSWORD"
|
|
47
99
|
else
|
|
48
100
|
echo "building unsigned app"
|
|
49
|
-
|
|
101
|
+
npx cap build android \
|
|
102
|
+
--androidreleasetype "$ANDROID_RELEASE_TYPE" \
|
|
103
|
+
--keystorepath "/saltcorn-mobile-app/unsecure-default-key.jks" \
|
|
104
|
+
--keystorepass "unsecurepassw" \
|
|
105
|
+
--keystorealias "unsecure-default-alias" \
|
|
106
|
+
--keystorealiaspass "unsecurepassw"
|
|
50
107
|
fi
|
|
51
|
-
|
|
52
|
-
chmod -R o+rwx /saltcorn-mobile-app
|
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
|
|
6
|
+
"version": "1.1.0",
|
|
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
|
|
14
|
-
"@saltcorn/data": "1.1.0
|
|
15
|
-
"@saltcorn/db-common": "1.1.0
|
|
16
|
-
"@saltcorn/server": "1.1.0
|
|
17
|
-
"@saltcorn/base-plugin": "1.1.0
|
|
18
|
-
"@saltcorn/sbadmin2": "1.1.0
|
|
19
|
-
"@saltcorn/mobile-app": "1.1.0
|
|
13
|
+
"@saltcorn/markup": "1.1.0",
|
|
14
|
+
"@saltcorn/data": "1.1.0",
|
|
15
|
+
"@saltcorn/db-common": "1.1.0",
|
|
16
|
+
"@saltcorn/server": "1.1.0",
|
|
17
|
+
"@saltcorn/base-plugin": "1.1.0",
|
|
18
|
+
"@saltcorn/sbadmin2": "1.1.0",
|
|
19
|
+
"@saltcorn/mobile-app": "1.1.0",
|
|
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",
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type User from "@saltcorn/data/models/user";
|
|
2
|
-
export declare type CordovaCfg = {
|
|
3
|
-
buildDir: string;
|
|
4
|
-
platforms: string[];
|
|
5
|
-
buildType: "debug" | "release";
|
|
6
|
-
appName: string;
|
|
7
|
-
useDocker?: boolean;
|
|
8
|
-
keyStorePath?: string;
|
|
9
|
-
keyStoreAlias?: string;
|
|
10
|
-
keyStorePassword?: string;
|
|
11
|
-
appleTeamId?: string;
|
|
12
|
-
provisioningGUUID?: string;
|
|
13
|
-
};
|
|
14
|
-
export declare class CordovaHelper {
|
|
15
|
-
buildDir: string;
|
|
16
|
-
platforms: string[];
|
|
17
|
-
buildType: "debug" | "release";
|
|
18
|
-
appName: string;
|
|
19
|
-
useDocker?: boolean;
|
|
20
|
-
keyStoreFile?: string;
|
|
21
|
-
keyStoreAlias?: string;
|
|
22
|
-
keyStorePassword?: string;
|
|
23
|
-
androidReleaseOut: string;
|
|
24
|
-
androidDebugOut: string;
|
|
25
|
-
appleTeamId?: string;
|
|
26
|
-
provisioningGUUID?: string;
|
|
27
|
-
constructor(cfg: CordovaCfg);
|
|
28
|
-
buildApp(): number | null;
|
|
29
|
-
private runXcodeCmds;
|
|
30
|
-
private copyAppIconsSet;
|
|
31
|
-
private buildApkInContainer;
|
|
32
|
-
private addPlugins;
|
|
33
|
-
private addPlatforms;
|
|
34
|
-
private callBuild;
|
|
35
|
-
/**
|
|
36
|
-
* copy .apk / .aab / .ipa files to 'copyDir' if they exist
|
|
37
|
-
* @param copyDir directory where the resulting app file will be copied to
|
|
38
|
-
* @param user the user specified by the userEmail (-c) parameter
|
|
39
|
-
* @param appName
|
|
40
|
-
*/
|
|
41
|
-
tryCopyAppFiles(copyDir: string, user: User, appName?: string): Promise<void>;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=cordova_helper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cordova_helper.d.ts","sourceRoot":"","sources":["../../utils/cordova_helper.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAC;AAEnD,oBAAY,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,qBAAa,aAAa;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAEf,GAAG,EAAE,UAAU;IA2B3B,QAAQ;IAkBR,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,SAAS;IA+BjB;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM;CAwBpE"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CordovaHelper = void 0;
|
|
7
|
-
const child_process_1 = require("child_process");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const fs_extra_1 = require("fs-extra");
|
|
10
|
-
const utils = require("@saltcorn/data/utils");
|
|
11
|
-
const { fileWithEnding, safeEnding } = utils;
|
|
12
|
-
const file_1 = __importDefault(require("@saltcorn/data/models/file"));
|
|
13
|
-
class CordovaHelper {
|
|
14
|
-
constructor(cfg) {
|
|
15
|
-
this.buildDir = cfg.buildDir;
|
|
16
|
-
this.platforms = cfg.platforms;
|
|
17
|
-
this.buildType = cfg.buildType || "debug";
|
|
18
|
-
this.appName = cfg.appName;
|
|
19
|
-
this.useDocker = cfg.useDocker;
|
|
20
|
-
this.keyStoreFile = cfg.keyStorePath
|
|
21
|
-
? (0, path_1.basename)(cfg.keyStorePath)
|
|
22
|
-
: undefined;
|
|
23
|
-
this.keyStoreAlias = cfg.keyStoreAlias;
|
|
24
|
-
this.keyStorePassword = cfg.keyStorePassword;
|
|
25
|
-
const androidOut = (0, path_1.join)(this.buildDir, "platforms", "android", "app", "build", "outputs");
|
|
26
|
-
this.androidReleaseOut = (0, path_1.join)(androidOut, "bundle", "release");
|
|
27
|
-
this.androidDebugOut = (0, path_1.join)(androidOut, "apk", "debug");
|
|
28
|
-
this.appleTeamId = cfg.appleTeamId;
|
|
29
|
-
this.provisioningGUUID = cfg.provisioningGUUID;
|
|
30
|
-
}
|
|
31
|
-
buildApp() {
|
|
32
|
-
let code = null;
|
|
33
|
-
if (!this.useDocker) {
|
|
34
|
-
this.addPlugins();
|
|
35
|
-
code = this.callBuild();
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
code = this.buildApkInContainer();
|
|
39
|
-
if (code === 0 && this.platforms.includes("ios"))
|
|
40
|
-
code = this.callBuild(["ios"]);
|
|
41
|
-
}
|
|
42
|
-
if (code !== 0)
|
|
43
|
-
return code;
|
|
44
|
-
if (this.platforms.includes("ios")) {
|
|
45
|
-
this.copyAppIconsSet();
|
|
46
|
-
code = this.runXcodeCmds();
|
|
47
|
-
}
|
|
48
|
-
return code;
|
|
49
|
-
}
|
|
50
|
-
runXcodeCmds() {
|
|
51
|
-
try {
|
|
52
|
-
console.log("xcodebuild -workspace");
|
|
53
|
-
let buffer = (0, child_process_1.execSync)(`xcodebuild -workspace platforms/ios/${this.appName}.xcworkspace ` +
|
|
54
|
-
`-scheme ${this.appName} -destination "generic/platform=iOS" ` +
|
|
55
|
-
`-archivePath MyArchive.xcarchive archive PROVISIONING_PROFILE="${this.provisioningGUUID}" ` +
|
|
56
|
-
' CODE_SIGN_STYLE="Manual" CODE_SIGN_IDENTITY="iPhone Distribution" ' +
|
|
57
|
-
` DEVELOPMENT_TEAM="${this.appleTeamId}"`, { cwd: this.buildDir, maxBuffer: 1024 * 1024 * 10 });
|
|
58
|
-
console.log(buffer.toString());
|
|
59
|
-
if (!(0, fs_extra_1.existsSync)((0, path_1.join)(this.buildDir, "MyArchive.xcarchive"))) {
|
|
60
|
-
console.log("Unable to export ipa: xcodebuild did not create the archivePath.");
|
|
61
|
-
return 1;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
console.log("xcodebuild -exportArchive");
|
|
65
|
-
buffer = (0, child_process_1.execSync)("xcodebuild -exportArchive -archivePath MyArchive.xcarchive " +
|
|
66
|
-
`-exportPath ${this.buildDir} -exportOptionsPlist ExportOptions.plist`, { cwd: this.buildDir, maxBuffer: 1024 * 1024 * 10 });
|
|
67
|
-
console.log(buffer.toString());
|
|
68
|
-
// to upload it automatically:
|
|
69
|
-
// xrun altool --upload-app -f [.ipa file] -t ios -u [apple-id] -p [app-specific password]
|
|
70
|
-
return 0;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
console.log(err);
|
|
75
|
-
return 1;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
copyAppIconsSet() {
|
|
79
|
-
const src = (0, path_1.join)(this.buildDir, "AppIcon.appiconset");
|
|
80
|
-
if (!(0, fs_extra_1.existsSync)(src)) {
|
|
81
|
-
console.log("AppIcon.appiconset not found");
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const dst = (0, path_1.join)(this.buildDir, "platforms", "ios", this.appName, "Assets.xcassets", "AppIcon.appiconset");
|
|
85
|
-
try {
|
|
86
|
-
(0, fs_extra_1.rmSync)(dst, { recursive: true, force: true });
|
|
87
|
-
(0, fs_extra_1.copySync)(src, dst, { recursive: true, overwrite: true });
|
|
88
|
-
}
|
|
89
|
-
catch (err) {
|
|
90
|
-
console.log(err);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
buildApkInContainer() {
|
|
95
|
-
const spawnParams = [
|
|
96
|
-
"run",
|
|
97
|
-
"--network",
|
|
98
|
-
"host",
|
|
99
|
-
"-v",
|
|
100
|
-
`${this.buildDir}:/saltcorn-mobile-app`,
|
|
101
|
-
"saltcorn/cordova-builder",
|
|
102
|
-
];
|
|
103
|
-
spawnParams.push(this.buildType);
|
|
104
|
-
if (this.keyStoreFile)
|
|
105
|
-
spawnParams.push(this.keyStoreFile, this.keyStoreAlias || "??", this.keyStorePassword || "??");
|
|
106
|
-
const result = (0, child_process_1.spawnSync)(`${process.env.DOCKER_BIN ? `${process.env.DOCKER_BIN}/` : ""}docker`, spawnParams, { cwd: ".", maxBuffer: 1024 * 1024 * 10 });
|
|
107
|
-
if (result.output)
|
|
108
|
-
console.log(result.output.toString());
|
|
109
|
-
else if (result.error)
|
|
110
|
-
console.log(result.error.toString());
|
|
111
|
-
else
|
|
112
|
-
console.log("docker finished without output");
|
|
113
|
-
return result.status;
|
|
114
|
-
}
|
|
115
|
-
addPlugins() {
|
|
116
|
-
const addFn = (plugin) => {
|
|
117
|
-
let result = (0, child_process_1.spawnSync)("npm", ["run", "add-plugin", "--", plugin], {
|
|
118
|
-
cwd: this.buildDir,
|
|
119
|
-
env: {
|
|
120
|
-
...process.env,
|
|
121
|
-
NODE_ENV: "development",
|
|
122
|
-
},
|
|
123
|
-
maxBuffer: 1024 * 1024 * 10,
|
|
124
|
-
});
|
|
125
|
-
console.log(result.output.toString());
|
|
126
|
-
};
|
|
127
|
-
addFn("cordova-sqlite-ext@6.0.0");
|
|
128
|
-
addFn("cordova-plugin-file@8.1.0");
|
|
129
|
-
addFn("cordova-plugin-inappbrowser@6.0.0");
|
|
130
|
-
addFn("cordova-plugin-network-information@3.0.0");
|
|
131
|
-
addFn("cordova-plugin-geolocation@5.0.0");
|
|
132
|
-
addFn("cordova-plugin-camera@7.0.0");
|
|
133
|
-
}
|
|
134
|
-
addPlatforms() {
|
|
135
|
-
const result = (0, child_process_1.spawnSync)("npm", ["run", "add-platform", "--", ...this.platforms], {
|
|
136
|
-
cwd: this.buildDir,
|
|
137
|
-
env: {
|
|
138
|
-
...process.env,
|
|
139
|
-
NODE_ENV: "development",
|
|
140
|
-
},
|
|
141
|
-
maxBuffer: 1024 * 1024 * 10,
|
|
142
|
-
});
|
|
143
|
-
console.log(result.output.toString());
|
|
144
|
-
}
|
|
145
|
-
callBuild(platforms = this.platforms) {
|
|
146
|
-
this.addPlatforms();
|
|
147
|
-
let buildParams = [...platforms, `--${this.buildType}`];
|
|
148
|
-
if (this.keyStoreFile) {
|
|
149
|
-
buildParams.push(`--keystore=${this.keyStoreFile}`, `--alias=${this.keyStoreAlias || "??"}`, `--password=${this.keyStorePassword || "??"}`, `--storePassword=${this.keyStorePassword || "??"}`);
|
|
150
|
-
}
|
|
151
|
-
if (platforms.includes("ios")) {
|
|
152
|
-
buildParams.push(`--developmentTeam=${this.appleTeamId}`, '--codeSignIdentity="iPhone Distribution"', "--packageType=app-store", `--provisioningProfile=${this.provisioningGUUID}`);
|
|
153
|
-
}
|
|
154
|
-
const result = (0, child_process_1.spawnSync)("npm", ["run", "build-app", "--", ...buildParams], {
|
|
155
|
-
cwd: this.buildDir,
|
|
156
|
-
maxBuffer: 1024 * 1024 * 10,
|
|
157
|
-
});
|
|
158
|
-
console.log(result.output.toString());
|
|
159
|
-
return result.status;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* copy .apk / .aab / .ipa files to 'copyDir' if they exist
|
|
163
|
-
* @param copyDir directory where the resulting app file will be copied to
|
|
164
|
-
* @param user the user specified by the userEmail (-c) parameter
|
|
165
|
-
* @param appName
|
|
166
|
-
*/
|
|
167
|
-
async tryCopyAppFiles(copyDir, user, appName) {
|
|
168
|
-
const copyHelper = async (ending, apkBuildDir) => {
|
|
169
|
-
const appFile = fileWithEnding(apkBuildDir, `.${ending}`);
|
|
170
|
-
if (appFile) {
|
|
171
|
-
const dstFile = appName
|
|
172
|
-
? safeEnding(appName, `.${ending}`)
|
|
173
|
-
: `app-${this.buildType}.${ending}`;
|
|
174
|
-
(0, fs_extra_1.copySync)((0, path_1.join)(apkBuildDir, appFile), (0, path_1.join)(copyDir, dstFile));
|
|
175
|
-
await file_1.default.set_xattr_of_existing_file(dstFile, copyDir, user);
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
if (!(0, fs_extra_1.existsSync)(copyDir))
|
|
179
|
-
(0, fs_extra_1.mkdirSync)(copyDir);
|
|
180
|
-
if (this.buildType === "debug")
|
|
181
|
-
copyHelper("apk", this.androidDebugOut);
|
|
182
|
-
else
|
|
183
|
-
copyHelper("aab", this.androidReleaseOut);
|
|
184
|
-
// iOS .ipa file
|
|
185
|
-
const ipaFile = fileWithEnding(this.buildDir, ".ipa");
|
|
186
|
-
if (ipaFile) {
|
|
187
|
-
const dstFile = appName ? safeEnding(appName, ".ipa") : "app-debug.ipa";
|
|
188
|
-
(0, fs_extra_1.copySync)((0, path_1.join)(this.buildDir, ipaFile), (0, path_1.join)(copyDir, dstFile));
|
|
189
|
-
await file_1.default.set_xattr_of_existing_file(dstFile, copyDir, user);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
exports.CordovaHelper = CordovaHelper;
|
|
194
|
-
//# sourceMappingURL=cordova_helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cordova_helper.js","sourceRoot":"","sources":["../../utils/cordova_helper.ts"],"names":[],"mappings":"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"}
|