70 lines
No EOL
2.5 KiB
Bash
70 lines
No EOL
2.5 KiB
Bash
#!/bin/bash
|
||
# Version: 1.0.0
|
||
#
|
||
# 販売アシスト 1 号用の APK ビルドスクリプト
|
||
# 自動的な BUILD_TIMESTAMP(UTC タイムスタンプ)を付与し、90 日寿命チェックされた APK を生成
|
||
|
||
set -e
|
||
|
||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
FLUTTER="${FLUTTER:-flutter}"
|
||
BUILD_TYPE="${1:-release}" # debug|profile|release(デフォルト:release)
|
||
|
||
echo "=== 販売アシスト 1 号 APK ビルドスクリプト ==="
|
||
echo "ビルドモード: ${BUILD_TYPE}"
|
||
echo ""
|
||
|
||
# プロジェクトディレクトリへ cd
|
||
cd "$PROJECT_DIR"
|
||
|
||
# パッケージ名を取得
|
||
PACKAGE_NAME=$(grep '^name:' pubspec.yaml | cut -d' ' -f2)
|
||
|
||
# 環境チェック
|
||
if [ ! -f "pubspec.lock" ]; then
|
||
echo "[エラー] pubspec.lock を発見できません。flutter pub get を実行してください。"
|
||
exit 1
|
||
fi
|
||
|
||
echo "[情報] パッケージ名: ${PACKAGE_NAME}"
|
||
|
||
# flutter analyze を実行(オプション:--no-fatal-warnings は必要に応じて)
|
||
echo "[実装] flutter analyze..."
|
||
$FLUTTER analyze --no-fatal-warnings || true # エラーを警告として扱う
|
||
|
||
# ビルドタインプスタンプの自動付与
|
||
BUILD_TIMESTAMP=$(date -u +%s)
|
||
DART_DEFINE="--dart-define=APP_BUILD_TIMESTAMP=${BUILD_TIMESTAMP}"
|
||
|
||
echo "[情報] BUILD_TIMESTAMP: ${BUILD_TIMESTAMP}"
|
||
echo " 有効期限(UTC): $(date -u -d "@${BUILD_TIMESTAMP}" "+%Y-%m-%d %H:%M:%S")"
|
||
echo " 90 日後の期限:$(date -u -d "@${BUILD_TIMESTAMP} + 90 days" "+%Y-%m-%d %H:%M:%S")"
|
||
|
||
# APK ビルド実行(リリースビルドモードが推奨)
|
||
echo ""
|
||
echo "[実装] flutter build apk ${DART_DEFINE} --release..."
|
||
$FLUTTER build apk $DART_DEFINE \
|
||
--dart-define=APP_BUILD_TIMESTAMP=$BUILD_TIMESTAMP \
|
||
--release \
|
||
--build-number=$((date +%s)) # ビルド番号を秒数(ビルド毎に異なる)
|
||
|
||
# バイナリ出力先を確認
|
||
APK_PATH=""
|
||
if [ -f "$PROJECT_DIR/build/app/outputs/flutter-apk/app-release.apk" ]; then
|
||
APK_PATH="$PROJECT_DIR/build/app/outputs/flutter-apk/app-release.apk"
|
||
elif [ -f "$PROJECT_DIR/build/app/outputs/bundle/release/app-release.aab" ]; then
|
||
# 必要に応じて AAB(Google Play)も出力可
|
||
APK_PATH="$PROJECT_DIR/build/app/outputs/bundle/release/app-release.aab"
|
||
fi
|
||
|
||
if [ ! -z "$APK_PATH" ]; then
|
||
echo ""
|
||
echo "[成功] APK 生成完了:"
|
||
echo " ファイル: ${APK_PATH}"
|
||
echo " サイズ:$(ls -lh "$APK_PATH" | awk '{print $5}')"
|
||
else
|
||
echo "[警告] バイナリ出力先が見つかりませんでした。"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== ビルド完了 ===" |