Commit d1287db6 authored by Benoit Lavenier's avatar Benoit Lavenier

Merge remote-tracking branch 'origin/master'

parents 53fe00b3 ca79080a
Pipeline #7111 passed with stages
in 7 minutes and 3 seconds
...@@ -6,12 +6,13 @@ ...@@ -6,12 +6,13 @@
/node_modules/ /node_modules/
/platforms/ios/ /platforms/*
/resources/android/build/local.properties /resources/android/build/local.properties
/resources/android/build/Cesium.keystore /resources/android/build/Cesium.keystore
/resources/android/build/release-signing.properties /resources/android/build/release-signing.properties
/plugins/ /plugins/
.idea/ .idea/
.vscode/
.local/ .local/
/*.iml /*.iml
...@@ -41,3 +42,4 @@ ...@@ -41,3 +42,4 @@
/env.sh /env.sh
/npm-debug.log /npm-debug.log
/package-lock.json /package-lock.json
/Cesium.keystore
\ No newline at end of file
...@@ -3,11 +3,11 @@ LABEL maintainer="benoit [dot] lavenier [at] e-is [dot] pro" ...@@ -3,11 +3,11 @@ LABEL maintainer="benoit [dot] lavenier [at] e-is [dot] pro"
ENV DEBIAN_FRONTEND=noninteractive \ ENV DEBIAN_FRONTEND=noninteractive \
ANDROID_HOME=/opt/android-sdk-linux \ ANDROID_HOME=/opt/android-sdk-linux \
NODE_VERSION=5.12.0 \ NODE_VERSION=6.17.1 \
NPM_VERSION=3.8.6 \ NPM_VERSION=6.10.3 \
IONIC_VERSION=1.7.16 \ IONIC_VERSION=1.7.16 \
BOWER_VERSION=1.8.0 \ BOWER_VERSION=1.8.0 \
CORDOVA_VERSION=6.5.0 \ CORDOVA_VERSION=9.0.0 \
GRADLE_VERSION=4.1 \ GRADLE_VERSION=4.1 \
NDK_VERSION=r10e NDK_VERSION=r10e
......
{
"android": {
"debug": {
"keystore": "./Cesium.keystore",
"storePassword": "Ces1um2020!",
"alias": "Cesium",
"password": "Ces1um2020!",
"keystoreType": "jks"
},
"release": {
"keystore": "./Cesium.keystore",
"storePassword": "Ces1um2020!",
"alias": "Cesium",
"password": "Ces1um2020!",
"keystoreType": "jks"
}
},
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "3TH8P5JJ9J",
"automaticProvisioning": true,
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "3TH8P5JJ9J",
"automaticProvisioning": true,
"packageType": "app-store"
}
}
}
\ No newline at end of file
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget android-versionCode="104006" id="fr.duniter.cesium" version="1.4.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <widget android-versionCode="104008" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.4.8" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Cesium</name> <name>Cesium</name>
<description> <description>
An simple App for Duniter wallet An simple App for Duniter wallet
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<preference name="SplashScreen" value="screen" /> <preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="4000" /> <preference name="SplashScreenDelay" value="4000" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" /> <preference name="KeyboardDisplayRequiresUserAction" value="false" />
<preference name="KeyboardResizeMode" value="ionic" />
<preference name="xwalkVersion" value="19" /> <preference name="xwalkVersion" value="19" />
<preference name="xwalkMultipleApk" value="false" /> <preference name="xwalkMultipleApk" value="false" />
<preference name="android-minSdkVersion" value="16" /> <preference name="android-minSdkVersion" value="16" />
...@@ -64,6 +65,8 @@ ...@@ -64,6 +65,8 @@
</platform> </platform>
<platform name="ios"> <platform name="ios">
<preference name="BackupWebStorage" value="local" /> <preference name="BackupWebStorage" value="local" />
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="KeyboardShrinksView" value="true" />
<icon height="20" src="resources/ios/icon/Icon-App-20x20@1x.png" width="20" /> <icon height="20" src="resources/ios/icon/Icon-App-20x20@1x.png" width="20" />
<icon height="40" src="resources/ios/icon/Icon-App-20x20@2x.png" width="40" /> <icon height="40" src="resources/ios/icon/Icon-App-20x20@2x.png" width="40" />
<icon height="60" src="resources/ios/icon/Icon-App-20x20@3x.png" width="60" /> <icon height="60" src="resources/ios/icon/Icon-App-20x20@3x.png" width="60" />
...@@ -97,20 +100,25 @@ ...@@ -97,20 +100,25 @@
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" /> <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" /> <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" /> <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription"> <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>To scan QRCode</string> <string>To scan QRCode</string>
</edit-config> </edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription"> <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
<string>To choose a profile picture</string> <string>To choose a profile picture</string>
</edit-config> </edit-config>
<config-file mode="add" parent="ITSAppUsesNonExemptEncryption" target="*-Info.plist">
<false />
</config-file>
</platform> </platform>
<engine name="android" spec="^6.2.3" /> <engine name="android" spec="^6.4.0" />
<engine name="ios" spec="^4.5.5" /> <engine name="ios" spec="^5.1.0-dev" />
<plugin name="cordova-plugin-camera" spec="^2.4.1" /> <plugin name="cordova-plugin-camera" spec="^2.4.1" />
<plugin name="cordova-plugin-console" spec="^1.0.7" /> <plugin name="cordova-plugin-console" spec="^1.0.7" />
<plugin name="cordova-plugin-device" spec="^1.1.6" /> <plugin name="cordova-plugin-device" spec="^1.1.6" />
<plugin name="cordova-plugin-dialogs" spec="^1.3.3" /> <plugin name="cordova-plugin-dialogs" spec="^1.3.3" />
<plugin name="cordova-plugin-inappbrowser" spec="^1.7.1" />
<plugin name="cordova-plugin-minisodium" spec="^1.0.1" /> <plugin name="cordova-plugin-minisodium" spec="^1.0.1" />
<plugin name="cordova-plugin-secure-storage" spec="^2.6.8" /> <plugin name="cordova-plugin-secure-storage" spec="^2.6.8" />
<plugin name="cordova-plugin-splashscreen" spec="^3.2.2" /> <plugin name="cordova-plugin-splashscreen" spec="^3.2.2" />
...@@ -119,9 +127,9 @@ ...@@ -119,9 +127,9 @@
<plugin name="cordova-plugin-websocket" spec="^0.12.2" /> <plugin name="cordova-plugin-websocket" spec="^0.12.2" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" /> <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
<plugin name="cordova-plugin-x-toast" spec="^2.6.0" /> <plugin name="cordova-plugin-x-toast" spec="^2.6.0" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" /> <plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
<plugin name="cordova-plugin-minisodium" spec="git+https://github.com/E-IS/cordova-plugin-minisodium.git"/> <plugin name="cordova-plugin-minisodium" spec="https://github.com/E-IS/cordova-plugin-minisodium.git" />
<plugin name="phonegap-plugin-barcodescanner" spec="git+https://github.com/phonegap/phonegap-plugin-barcodescanner.git"> <plugin name="phonegap-plugin-barcodescanner" spec="https://github.com/phonegap/phonegap-plugin-barcodescanner.git">
<variable name="CAMERA_USAGE_DESCRIPTION" value="Scan QRCode" /> <variable name="CAMERA_USAGE_DESCRIPTION" value="Scan QRCode" />
</plugin> </plugin>
</widget> </widget>
...@@ -16,14 +16,14 @@ To build Cesium, you will have to: ...@@ -16,14 +16,14 @@ To build Cesium, you will have to:
> Then reload your terminal, for instance by executing the commande `bash` > Then reload your terminal, for instance by executing the commande `bash`
- Configure NodeJS to use a version 5: (**WARNING**: upper version will NOT work !) - Configure NodeJS to use a version 6: (**WARNING**: upper version will NOT work !)
``` ```
nvm install 5 nvm install 6
``` ```
- Installing node.js build tools: - Installing node.js build tools:
``` ```
npm install -g gulp bower@1.8.0 cordova@6.5.0 ionic@1.7.16 npm install -g gulp bower@1.8.0 cordova@9.0.0 ionic@1.7.16
``` ```
## Get the source code and dependencies ## Get the source code and dependencies
......
...@@ -37,50 +37,72 @@ if (rootdir) { ...@@ -37,50 +37,72 @@ if (rootdir) {
var htmlminOptions = {removeComments: true, collapseWhitespace: true}; var htmlminOptions = {removeComments: true, collapseWhitespace: true};
// Removing unused code for device... // Do not remove desktop code for iOS and macOS (support for tablets and desktop macs)
es.concat( if (platform !== 'ios' && platform !== 'osx') {
// Remove unused HTML tags // Removing unused code for device...
gulp.src(path.join(wwwPath, 'templates', '**', '*.html')) es.concat(
.pipe(removeCode({device: true})) // Remove unused HTML tags
.pipe(removeCode(platformRemoveCodeOptions)) gulp.src(path.join(wwwPath, 'templates', '**', '*.html'))
.pipe(removeHtml('.hidden-xs.hidden-sm')) .pipe(removeCode({device: true}))
.pipe(removeHtml('.hidden-device')) .pipe(removeCode(platformRemoveCodeOptions))
.pipe(removeHtml('[remove-if][remove-if="device"]')) .pipe(removeHtml('.hidden-xs.hidden-sm'))
.pipe(htmlmin(htmlminOptions)) .pipe(removeHtml('.hidden-device'))
.pipe(gulp.dest(wwwPath + '/templates')), .pipe(removeHtml('[remove-if][remove-if="device"]'))
.pipe(htmlmin(htmlminOptions))
gulp.src(path.join(pluginPath, '**', '*.html')) .pipe(gulp.dest(wwwPath + '/templates')),
.pipe(removeCode({device: true}))
.pipe(removeCode(platformRemoveCodeOptions)) gulp.src(path.join(pluginPath, '**', '*.html'))
.pipe(removeHtml('.hidden-xs.hidden-sm')) .pipe(removeCode({device: true}))
.pipe(removeHtml('.hidden-device')) .pipe(removeCode(platformRemoveCodeOptions))
.pipe(removeHtml('[remove-if][remove-if="device"]')) .pipe(removeHtml('.hidden-xs.hidden-sm'))
.pipe(htmlmin(htmlminOptions)) .pipe(removeHtml('.hidden-device'))
.pipe(gulp.dest(pluginPath)), .pipe(removeHtml('[remove-if][remove-if="device"]'))
.pipe(htmlmin(htmlminOptions))
gulp.src(path.join(wwwPath, 'index.html')) .pipe(gulp.dest(pluginPath)),
.pipe(removeCode({device: true}))
.pipe(removeCode(platformRemoveCodeOptions)) gulp.src(path.join(wwwPath, 'index.html'))
.pipe(removeHtml('.hidden-xs.hidden-sm')) .pipe(removeCode({device: true}))
.pipe(removeHtml('.hidden-device')) .pipe(removeCode(platformRemoveCodeOptions))
.pipe(removeHtml('[remove-if][remove-if="device"]')) .pipe(removeHtml('.hidden-xs.hidden-sm'))
.pipe(htmlmin(/*no options, to build comments*/)) .pipe(removeHtml('.hidden-device'))
.pipe(gulp.dest(wwwPath)), .pipe(removeHtml('[remove-if][remove-if="device"]'))
.pipe(htmlmin(/*no options, to build comments*/))
// Remove unused JS code + add ng annotations .pipe(gulp.dest(wwwPath)),
gulp.src(path.join(wwwPath, 'js', '**', '*.js'))
.pipe(removeCode({device: true})) // Remove unused JS code + add ng annotations
.pipe(removeCode(platformRemoveCodeOptions)) gulp.src(path.join(wwwPath, 'js', '**', '*.js'))
.pipe(ngAnnotate({single_quotes: true})) .pipe(removeCode({device: true}))
.pipe(gulp.dest(wwwPath + '/dist/dist_js/app')), .pipe(removeCode(platformRemoveCodeOptions))
.pipe(ngAnnotate({single_quotes: true}))
gulp.src([pluginPath + '/js/**/*.js']) .pipe(gulp.dest(wwwPath + '/dist/dist_js/app')),
.pipe(removeCode({device: true}))
.pipe(removeCode(platformRemoveCodeOptions)) gulp.src([pluginPath + '/js/**/*.js'])
.pipe(ngAnnotate({single_quotes: true})) .pipe(removeCode({device: true}))
.pipe(gulp.dest(wwwPath + '/dist/dist_js/plugins')) .pipe(removeCode(platformRemoveCodeOptions))
); .pipe(ngAnnotate({single_quotes: true}))
.pipe(gulp.dest(wwwPath + '/dist/dist_js/plugins'))
);
} else {
es.concat(
gulp.src(path.join(wwwPath, 'templates', '**', '*.html'))
.pipe(htmlmin(htmlminOptions))
.pipe(gulp.dest(wwwPath + '/templates')),
gulp.src(path.join(pluginPath, '**', '*.html'))
.pipe(htmlmin(htmlminOptions))
.pipe(gulp.dest(pluginPath)),
gulp.src(path.join(wwwPath, 'index.html'))
.pipe(gulp.dest(wwwPath)),
gulp.src(path.join(wwwPath, 'js', '**', '*.js'))
.pipe(ngAnnotate({single_quotes: true}))
.pipe(gulp.dest(wwwPath + '/dist/dist_js/app')),
gulp.src([pluginPath + '/js/**/*.js'])
.pipe(gulp.dest(wwwPath + '/dist/dist_js/plugins'))
);
}
} }
} }
...@@ -15,7 +15,7 @@ if [ "_$CESIUM_DIR" = "_" ]; then ...@@ -15,7 +15,7 @@ if [ "_$CESIUM_DIR" = "_" ]; then
fi fi
latest_version() { latest_version() {
echo "v1.4.6" #lastest echo "v1.4.8" #lastest
} }
api_release_url() { api_release_url() {
......
{}
\ No newline at end of file
{ {
"name": "cesium", "name": "cesium",
"version": "1.4.6", "version": "1.4.8",
"description": "Cesium Wallet for G1 libre currency", "description": "Cesium Wallet for G1 libre currency",
"repository": { "repository": {
"type": "git", "type": "git",
...@@ -30,25 +30,27 @@ ...@@ -30,25 +30,27 @@
"new": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new" "new": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new"
}, },
"dependencies": { "dependencies": {
"cordova": "^7.1.0", "cordova": "^9.0.0",
"cordova-android": "^6.2.3", "cordova-android": "6.4.0",
"cordova-ios": "^4.5.5", "cordova-clipboard": "^1.3.0",
"cordova-ios": "git+https://github.com/bpresles/cordova-ios.git#5.1.0",
"cordova-osx": "^5.0.0",
"cordova-plugin-camera": "^2.4.1", "cordova-plugin-camera": "^2.4.1",
"cordova-plugin-compat": "^1.1.0", "cordova-plugin-compat": "^1.2.0",
"cordova-plugin-console": "^1.0.7", "cordova-plugin-console": "^1.1.0",
"cordova-plugin-crosswalk-webview": "^2.3.0", "cordova-plugin-crosswalk-webview": "^2.3.0",
"cordova-plugin-device": "^1.1.6", "cordova-plugin-device": "^1.1.7",
"cordova-plugin-dialogs": "^1.3.3", "cordova-plugin-dialogs": "^1.3.4",
"cordova-plugin-inappbrowser": "^1.7.1", "cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-minisodium": "git+https://github.com/E-IS/cordova-plugin-minisodium.git", "cordova-plugin-ionic-webview": "^4.1.2",
"cordova-plugin-minisodium": "git+https://github.com/bpresles/cordova-plugin-minisodium.git",
"cordova-plugin-secure-storage": "^2.6.8", "cordova-plugin-secure-storage": "^2.6.8",
"cordova-plugin-splashscreen": "^3.2.2", "cordova-plugin-splashscreen": "^3.2.2",
"cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-vibration": "^2.1.5", "cordova-plugin-vibration": "^2.1.6",
"cordova-plugin-websocket": "^0.12.2", "cordova-plugin-websocket": "^0.12.2",
"cordova-plugin-whitelist": "^1.3.2", "cordova-plugin-whitelist": "^1.3.4",
"cordova-plugin-x-toast": "^2.6.0", "cordova-plugin-x-toast": "^2.7.2",
"ionic-plugin-keyboard": "^2.2.1",
"moment": "~2.19.3", "moment": "~2.19.3",
"numeral": "1.5.3", "numeral": "1.5.3",
"phonegap-plugin-barcodescanner": "git+https://github.com/phonegap/phonegap-plugin-barcodescanner.git" "phonegap-plugin-barcodescanner": "git+https://github.com/phonegap/phonegap-plugin-barcodescanner.git"
...@@ -59,7 +61,6 @@ ...@@ -59,7 +61,6 @@
"del": "^2.2.0", "del": "^2.2.0",
"delete-empty": "^0.1.3", "delete-empty": "^0.1.3",
"event-stream": "3.3.4", "event-stream": "3.3.4",
"fs": "^0.0.2",
"glob": "^5.0.15", "glob": "^5.0.15",
"gulp": "^3.9.1", "gulp": "^3.9.1",
"gulp-angular-templatecache": "^1.8.0", "gulp-angular-templatecache": "^1.8.0",
...@@ -113,21 +114,30 @@ ...@@ -113,21 +114,30 @@
"cordova-plugin-vibration", "cordova-plugin-vibration",
"cordova-plugin-dialogs", "cordova-plugin-dialogs",
"cordova-plugin-secure-storage", "cordova-plugin-secure-storage",
"cordova-plugin-inappbrowser",
"cordova-plugin-x-toast", "cordova-plugin-x-toast",
"cordova-clipboard", "cordova-clipboard",
{ {
"id": "cordova-plugin-minisodium", "id": "cordova-plugin-minisodium",
"locator": "https://github.com/E-IS/cordova-plugin-minisodium.git" "locator": "https://github.com/bpresles/cordova-plugin-minisodium.git"
}, },
{ {
"id": "phonegap-plugin-barcodescanner", "id": "phonegap-plugin-barcodescanner",
"locator": "https://github.com/phonegap/phonegap-plugin-barcodescanner.git" "locator": "https://github.com/phonegap/phonegap-plugin-barcodescanner.git"
} },
"cordova-plugin-ionic-keyboard",
"cordova-plugin-ionic-webview@4.1.2"
], ],
"cordovaPlatforms": [ "cordovaPlatforms": [
"android", {
"ios" "platform": "ios",
"version": "5.1.0",
"locator": "https://github.com/bpresles/cordova-ios.git#5.1.0"
},
{
"platform": "android",
"version": "6.4.0",
"locator": "android@6.4.0"
}
], ],
"cordova": { "cordova": {
"plugins": { "plugins": {
...@@ -135,7 +145,6 @@ ...@@ -135,7 +145,6 @@
"cordova-plugin-console": {}, "cordova-plugin-console": {},
"cordova-plugin-device": {}, "cordova-plugin-device": {},
"cordova-plugin-dialogs": {}, "cordova-plugin-dialogs": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-minisodium": {}, "cordova-plugin-minisodium": {},
"cordova-plugin-secure-storage": {}, "cordova-plugin-secure-storage": {},
"cordova-plugin-splashscreen": {}, "cordova-plugin-splashscreen": {},
...@@ -144,14 +153,20 @@ ...@@ -144,14 +153,20 @@
"cordova-plugin-websocket": {}, "cordova-plugin-websocket": {},
"cordova-plugin-whitelist": {}, "cordova-plugin-whitelist": {},
"cordova-plugin-x-toast": {}, "cordova-plugin-x-toast": {},
"ionic-plugin-keyboard": {}, "cordova-plugin-ionic-keyboard": {},
"phonegap-plugin-barcodescanner": { "phonegap-plugin-barcodescanner": {
"CAMERA_USAGE_DESCRIPTION": "Scan QRCode" "CAMERA_USAGE_DESCRIPTION": "Scan QRCode"
},
"ionic-plugin-keyboard": {},
"cordova-clipboard": {},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
} }
}, },
"platforms": [ "platforms": [
"ios",
"android", "android",
"ios" "osx"
] ]
} }
} }
\ No newline at end of file
{
"ios": "https://github.com/bpresles/cordova-ios.git#5.1.0",
"android": "6.4.0"
}
...@@ -74,10 +74,10 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then ...@@ -74,10 +74,10 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then
echo "Java: $JAVA_VERSION" echo "Java: $JAVA_VERSION"
# force nodejs version to 5 # force nodejs version to 6
if [[ -d "$NVM_DIR" ]]; then if [[ -d "$NVM_DIR" ]]; then
. $NVM_DIR/nvm.sh . $NVM_DIR/nvm.sh
nvm use 5 nvm use 6
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
exit 1 exit 1
fi fi
...@@ -167,9 +167,9 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then ...@@ -167,9 +167,9 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then
echo "WARN: platform/desktop not found -> Skipping desktop build!" echo "WARN: platform/desktop not found -> Skipping desktop build!"
fi; fi;
# back to nodejs version 5 # back to nodejs version 6
cd $DIRNAME cd $DIRNAME
nvm use 5 nvm use 6
echo "**********************************" echo "**********************************"
echo "* Build release succeed !" echo "* Build release succeed !"
......
resources/icon.png

59.4 KB | W: | H:

resources/icon.png

379 KB | W: | H:

resources/icon.png
resources/icon.png
resources/icon.png
resources/icon.png
  • 2-up
  • Swipe
  • Onion skin
resources/ios/splash/Default-667h.png

92.8 KB | W: | H:

resources/ios/splash/Default-667h.png

48.8 KB | W: | H:

resources/ios/splash/Default-667h.png
resources/ios/splash/Default-667h.png
resources/ios/splash/Default-667h.png
resources/ios/splash/Default-667h.png
  • 2-up
  • Swipe
  • Onion skin
resources/splash.png

60.8 KB | W: | H:

resources/splash.png

104 KB | W: | H:

resources/splash.png
resources/splash.png
resources/splash.png
resources/splash.png
  • 2-up
  • Swipe
  • Onion skin