Files
iistwin/scripts/setup-android-creds.sh
Ильяс Султанов 1f5ecb6da4 fix(number-fields): избегаем потери точности длинных чисел
- number-поля теперь рендерятся как text + inputMode=numeric,
  чтобы браузер не округлял значения через input type=number
- пробелы при вставке в number-поля удаляются
- бэкенд нормализует значения number-полей в строку перед сохранением
- добавлен хелпер normalizeFieldValueForStorage

Closes: искажение расчётного счёта и других длинных числовых полей
2026-07-07 21:03:40 +03:00

70 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Generates Android signing credentials if they don't exist yet.
# Works correctly regardless of which directory this script is called from.
#
# Optional env vars:
# ANDROID_KEYSTORE_PASSWORD – keystore password (auto-generated and cached if not set)
# ANDROID_KEY_ALIAS – key alias (default: workflow)
# ANDROID_KEY_PASSWORD – key password (same as keystore password if not set)
set -euo pipefail
# Resolve repo root from the location of this script, not from CWD
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CREDS_DIR="$REPO_ROOT/mobile/credentials"
KEYSTORE="$CREDS_DIR/keystore.p12"
CREDS_JSON="$REPO_ROOT/mobile/credentials.json"
PASS_CACHE="$CREDS_DIR/.keystore_pass"
mkdir -p "$CREDS_DIR"
# Determine keystore password:
# 1. Prefer explicit env var
# 2. Otherwise reuse cached value from previous run (keeps existing keystore valid)
# 3. Otherwise generate a random one and cache it
if [ -n "${ANDROID_KEYSTORE_PASSWORD:-}" ]; then
KEYSTORE_PASSWORD="$ANDROID_KEYSTORE_PASSWORD"
elif [ -f "$PASS_CACHE" ]; then
KEYSTORE_PASSWORD="$(cat "$PASS_CACHE")"
else
KEYSTORE_PASSWORD="$(openssl rand -hex 20)"
echo "$KEYSTORE_PASSWORD" > "$PASS_CACHE"
chmod 600 "$PASS_CACHE"
echo "Generated and cached new keystore password."
fi
KEY_ALIAS="${ANDROID_KEY_ALIAS:-workflow}"
KEY_PASSWORD="${ANDROID_KEY_PASSWORD:-$KEYSTORE_PASSWORD}"
if [ ! -f "$KEYSTORE" ]; then
echo "Generating Android keystore..."
keytool -genkeypair -v -storetype PKCS12 \
-keystore "$KEYSTORE" \
-storepass "$KEYSTORE_PASSWORD" \
-alias "$KEY_ALIAS" \
-keypass "$KEY_PASSWORD" \
-keyalg RSA -keysize 2048 -validity 10000 \
-dname "CN=Workflow App, OU=Dev, O=Company, L=Moscow, ST=Moscow, C=RU" 2>/dev/null
echo "Keystore created: $KEYSTORE"
else
echo "Keystore already exists: $KEYSTORE"
fi
cat > "$CREDS_JSON" <<CREDJSON
{
"android": {
"keystore": {
"keystorePath": "credentials/keystore.p12",
"keystorePassword": "$KEYSTORE_PASSWORD",
"keyAlias": "$KEY_ALIAS",
"keyPassword": "$KEY_PASSWORD"
}
}
}
CREDJSON
echo "credentials.json written to: $CREDS_JSON"
echo "Ready to build."