blob: 3368691602992cf48bcc8fcd3e5bccf353dc534f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
#!/bin/bash
build_debug() {
echo "*********** Building Debug Build **************"
rm -rf debug_files 2>/dev/null
mkdir debug_files
ionic cordova build android
# adding back wkwebview clears platform debug directory later
cp platforms/android/build/outputs/apk/debug/android-debug.apk debug_files
}
build_release() {
echo "*********** Building Release Build **************"
echo "----> Only building native. Not building crosswalk anymore due to compatibility issues <----------"
# App signining credentials in this file
NINJAKEYSTORE=~/Desktop/zmNinja.keystore
if [ ! -f "$NINJAKEYSTORE" ]; then
echo "zmNinja keystore not found"
exit
fi
BUILD_MODE="native"
rm -rf release_files 2>/dev/null
mkdir release_files
############ Native web view build ###############################
echo "${ver}: Building Release mode for android 5+..."
echo "--------------------------------------------"
# No longer needed as we are not supporting Xwalk
# echo "Removing android and re-adding..."
# cordova platform remove android
# cordova platform add android@6.4.0
#clean up past build stuff
# echo "Adding default browser..."
# cordova plugin remove cordova-plugin-crosswalk-webview
# use the right plugin for SSL certificate mgmt
# cordova plugin remove cordova-plugin-crosswalk-certificate-pp-fork
# cordova plugin add cordova-plugin-certificates
cp "$NINJAKEYSTORE" platforms/android/
# Make sure native builds are only deployed in devices >= Android 5
cordova build android --release -- --minSdkVersion=21 --versionCode=${ver}
# copy build to release folder and sign
cp platforms/android/build/outputs/apk/release/android-release-unsigned.apk release_files/
echo "Copied files to release_files"
cd release_files/
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../platforms/android/zmNinja.keystore android-release-unsigned.apk zmNinja
~/Library/Android/sdk/build-tools/25.0.2/zipalign -v 4 android-release-unsigned.apk zmNinja.apk
rm -f android-release-unsigned.apk
cd ..
# Do a phone perm check
./checkperms.sh release_files/zmNinja.apk
echo "*** Phone State Check:"
./checkperms.sh release_files/zmNinja.apk | grep PHONE_STATE
echo "***VERSION CODE CHECKS:"
for f in release_files/*; do
echo "$f:"
`echo $ANDROID_HOME`/build-tools/23.0.1/aapt dump badging $f | grep versionCode
`echo $ANDROID_HOME`/build-tools/23.0.1/aapt dump badging $f | grep native-code
done
}
# parse arguments
# credit: https://stackoverflow.com/a/14203146/1361529
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-d|--debug)
MODE="debug"
shift # past argument
;;
-r|--release)
MODE="release"
shift # past argument
;;
*) # unknown option
shift # past argument
;;
esac
done
./electron_js/sync_versions.sh
APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'`
# multipleApk adds 2 and 4 in Xwalk builds for arm and x86 respectively
ver_pre5=${APPVER//.}
ver=${APPVER//.}9
echo "About to build version: $APPVER ($MODE)"
read -p "Press any key..."
echo "Removing wkwebview, adding certificate fork..."
cordova plugin remove cordova-plugin-ionic-webview > /dev/null 2>&1
cordova plugin add cordova-plugin-certificates-pp-fork > /dev/null 2>&1
if [ "${MODE}" = "debug" ]; then
build_debug
else
build_release
fi
echo "Adding back wkwebview and removing certificate fork..."
cordova plugin remove cordova-plugin-certificates-pp-fork > /dev/null 2>&1
cordova plugin add https://github.com/pliablepixels/cordova-plugin-ionic-webview.git > /dev/null 2>&1
|