@saltcorn/mobile-builder 1.1.0-beta.2 → 1.1.0-beta.20
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.map +1 -1
- package/dist/mobile-builder.js +60 -54
- package/dist/mobile-builder.js.map +1 -1
- package/dist/utils/{cordova_helper.d.ts → capacitor-helper.d.ts} +13 -19
- package/dist/utils/capacitor-helper.d.ts.map +1 -0
- package/dist/utils/capacitor-helper.js +202 -0
- package/dist/utils/capacitor-helper.js.map +1 -0
- package/dist/utils/common-build-utils.d.ts +11 -0
- package/dist/utils/common-build-utils.d.ts.map +1 -1
- package/dist/utils/common-build-utils.js +291 -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 +63 -23
- package/package.json +8 -8
- 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
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,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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
|
73
|
+
npm run build
|
|
74
|
+
npx cap sync
|
|
39
75
|
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
6
|
+
"version": "1.1.0-beta.20",
|
|
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.
|
|
14
|
-
"@saltcorn/data": "1.1.0-beta.
|
|
15
|
-
"@saltcorn/db-common": "1.1.0-beta.
|
|
16
|
-
"@saltcorn/server": "1.1.0-beta.
|
|
17
|
-
"@saltcorn/base-plugin": "1.1.0-beta.
|
|
18
|
-
"@saltcorn/sbadmin2": "1.1.0-beta.
|
|
19
|
-
"@saltcorn/mobile-app": "1.1.0-beta.
|
|
13
|
+
"@saltcorn/markup": "1.1.0-beta.20",
|
|
14
|
+
"@saltcorn/data": "1.1.0-beta.20",
|
|
15
|
+
"@saltcorn/db-common": "1.1.0-beta.20",
|
|
16
|
+
"@saltcorn/server": "1.1.0-beta.20",
|
|
17
|
+
"@saltcorn/base-plugin": "1.1.0-beta.20",
|
|
18
|
+
"@saltcorn/sbadmin2": "1.1.0-beta.20",
|
|
19
|
+
"@saltcorn/mobile-app": "1.1.0-beta.20",
|
|
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 +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":";;;;;;AAAA,iDAAoD;AACpD,+BAAsC;AACtC,uCAAmE;AACnE,8CAA+C;AAC/C,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAC7C,sEAA8C;AAkB9C,MAAa,aAAa;IAgBxB,YAAY,GAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;YAClC,CAAC,CAAC,IAAA,eAAQ,EAAC,GAAG,CAAC,YAAY,CAAC;YAC5B,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAA,WAAI,EACrB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,CACV,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACjD,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC9C,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,IAAI;YACF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,IAAI,MAAM,GAAG,IAAA,wBAAQ,EACnB,uCAAuC,IAAI,CAAC,OAAO,eAAe;gBAChE,WAAW,IAAI,CAAC,OAAO,uCAAuC;gBAC9D,kEAAkE,IAAI,CAAC,iBAAiB,IAAI;gBAC5F,qEAAqE;gBACrE,sBAAsB,IAAI,CAAC,WAAW,GAAG,EAC3C,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CACpD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,EAAE;gBAC3D,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;gBACF,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,MAAM,GAAG,IAAA,wBAAQ,EACf,6DAA6D;oBAC3D,eAAe,IAAI,CAAC,QAAQ,0CAA0C,EACxE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CACpD,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/B,8BAA8B;gBAC9B,0FAA0F;gBAC1F,OAAO,CAAC,CAAC;aACV;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,GAAG,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACtD,IAAI,CAAC,IAAA,qBAAU,EAAC,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;SAC7C;aAAM;YACL,MAAM,GAAG,GAAG,IAAA,WAAI,EACd,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;YACF,IAAI;gBACF,IAAA,iBAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAA,mBAAQ,EAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1D;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClB;SACF;IACH,CAAC;IAEO,mBAAmB;QACzB,MAAM,WAAW,GAAG;YAClB,KAAK;YACL,WAAW;YACX,MAAM;YACN,IAAI;YACJ,GAAG,IAAI,CAAC,QAAQ,uBAAuB;YACvC,0BAA0B;SAC3B,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY;YACnB,WAAW,CAAC,IAAI,CACd,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,IAAI,IAAI,EAC1B,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAC9B,CAAC;QACJ,MAAM,MAAM,GAAG,IAAA,yBAAS,EACtB,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EACrE,WAAW,EACX,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CAC1C,CAAC;QACF,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;aACpD,IAAI,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;;YACvD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAEO,UAAU;QAChB,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE;YAC/B,IAAI,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;gBACjE,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,QAAQ,EAAE,aAAa;iBACxB;gBACD,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;aAC5B,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3C,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC1C,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvC,CAAC;IAEO,YAAY;QAClB,MAAM,MAAM,GAAG,IAAA,yBAAS,EACtB,KAAK,EACL,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAChD;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,QAAQ,EAAE,aAAa;aACxB;YACD,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;SAC5B,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,YAAsB,IAAI,CAAC,SAAS;QACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,WAAW,CAAC,IAAI,CACd,cAAc,IAAI,CAAC,YAAY,EAAE,EACjC,WAAW,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,EACvC,cAAc,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,EAC7C,mBAAmB,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CACnD,CAAC;SACH;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC7B,WAAW,CAAC,IAAI,CACd,qBAAqB,IAAI,CAAC,WAAW,EAAE,EACvC,0CAA0C,EAC1C,yBAAyB,EACzB,yBAAyB,IAAI,CAAC,iBAAiB,EAAE,CAClD,CAAC;SACH;QACD,MAAM,MAAM,GAAG,IAAA,yBAAS,EACtB,KAAK,EACL,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,EAC1C;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;SAC5B,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,IAAU,EAAE,OAAgB;QACjE,MAAM,UAAU,GAAG,KAAK,EAAE,MAAqB,EAAE,WAAmB,EAAE,EAAE;YACtE,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE;gBACX,MAAM,OAAO,GAAG,OAAO;oBACrB,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,MAAM,EAAE,CAAC;oBACnC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtC,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,CAAC,EAAE,IAAA,WAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7D,MAAM,cAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC/D;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,IAAA,qBAAU,EAAC,OAAO,CAAC;YAAE,IAAA,oBAAS,EAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;;YACnE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE/C,gBAAgB;QAChB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YACxE,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAA,WAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,MAAM,cAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/D;IACH,CAAC;CACF;AAlPD,sCAkPC"}
|