feat: add IS_BUSINESS_APP build flag for consumer/business APK split
消費者向けビルド(IS_BUSINESS_APP=false)では店舗タブを完全非表示にする。 build_consumer.sh / build_business.sh でワンコマンドビルド可能。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9f63578ca7
commit
c0a23d2afb
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# Ponshu Room Lite - 店舗向けAPKビルドスクリプト
|
||||
# IS_BUSINESS_APP=true / IS_PRO_VERSION=false
|
||||
# ============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
OUTPUT_DIR="build/apk_releases/$TIMESTAMP"
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# APIキー (.env から読み込む)
|
||||
if [ -f "$(dirname "$0")/.env" ]; then
|
||||
export $(grep -v '^#' "$(dirname "$0")/.env" | xargs)
|
||||
fi
|
||||
MAITA_KEY="${MAITA_API_KEY:?MAITA_API_KEY is not set in .env}"
|
||||
EIJI_KEY="${EIJI_API_KEY:?EIJI_API_KEY is not set in .env}"
|
||||
|
||||
# build.gradle.kts バックアップ
|
||||
GRADLE_FILE="android/app/build.gradle.kts"
|
||||
BACKUP_FILE="android/app/build.gradle.kts.backup"
|
||||
cp "$GRADLE_FILE" "$BACKUP_FILE"
|
||||
|
||||
cleanup() {
|
||||
if [ -f "$BACKUP_FILE" ]; then
|
||||
cp "$BACKUP_FILE" "$GRADLE_FILE"
|
||||
rm "$BACKUP_FILE"
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "============================================================================"
|
||||
echo "Ponshu Room Lite - Business APK Build"
|
||||
echo "============================================================================"
|
||||
echo "Output: $OUTPUT_DIR"
|
||||
echo ""
|
||||
|
||||
sed -i 's/applicationId = "com.posimai.ponshu_room"/applicationId = "com.posimai.ponshu_room_lite"/' "$GRADLE_FILE"
|
||||
|
||||
echo "[1/2] Building Maita Business..."
|
||||
flutter build apk --release \
|
||||
--dart-define=GEMINI_API_KEY=$MAITA_KEY \
|
||||
--dart-define=IS_PRO_VERSION=false \
|
||||
--dart-define=IS_BUSINESS_APP=true \
|
||||
--dart-define=USE_PROXY=false
|
||||
|
||||
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_business_maita.apk"
|
||||
echo "Saved: $OUTPUT_DIR/ponshu_room_business_maita.apk"
|
||||
echo ""
|
||||
|
||||
echo "[2/2] Building Eiji Business..."
|
||||
flutter build apk --release \
|
||||
--dart-define=GEMINI_API_KEY=$EIJI_KEY \
|
||||
--dart-define=IS_PRO_VERSION=false \
|
||||
--dart-define=IS_BUSINESS_APP=true \
|
||||
--dart-define=USE_PROXY=false
|
||||
|
||||
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_business_eiji.apk"
|
||||
echo "Saved: $OUTPUT_DIR/ponshu_room_business_eiji.apk"
|
||||
echo ""
|
||||
|
||||
echo "============================================================================"
|
||||
echo "Business build completed!"
|
||||
echo "============================================================================"
|
||||
ls -lh "$OUTPUT_DIR"
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# Ponshu Room Lite - 消費者向けAPKビルドスクリプト
|
||||
# IS_BUSINESS_APP=false / IS_PRO_VERSION=false
|
||||
# ============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
OUTPUT_DIR="build/apk_releases/$TIMESTAMP"
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# APIキー (.env から読み込む)
|
||||
if [ -f "$(dirname "$0")/.env" ]; then
|
||||
export $(grep -v '^#' "$(dirname "$0")/.env" | xargs)
|
||||
fi
|
||||
MAITA_KEY="${MAITA_API_KEY:?MAITA_API_KEY is not set in .env}"
|
||||
EIJI_KEY="${EIJI_API_KEY:?EIJI_API_KEY is not set in .env}"
|
||||
|
||||
# build.gradle.kts バックアップ
|
||||
GRADLE_FILE="android/app/build.gradle.kts"
|
||||
BACKUP_FILE="android/app/build.gradle.kts.backup"
|
||||
cp "$GRADLE_FILE" "$BACKUP_FILE"
|
||||
|
||||
cleanup() {
|
||||
if [ -f "$BACKUP_FILE" ]; then
|
||||
cp "$BACKUP_FILE" "$GRADLE_FILE"
|
||||
rm "$BACKUP_FILE"
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "============================================================================"
|
||||
echo "Ponshu Room Lite - Consumer APK Build"
|
||||
echo "============================================================================"
|
||||
echo "Output: $OUTPUT_DIR"
|
||||
echo ""
|
||||
|
||||
sed -i 's/applicationId = "com.posimai.ponshu_room"/applicationId = "com.posimai.ponshu_room_lite"/' "$GRADLE_FILE"
|
||||
|
||||
echo "[1/2] Building Maita Consumer..."
|
||||
flutter build apk --release \
|
||||
--dart-define=GEMINI_API_KEY=$MAITA_KEY \
|
||||
--dart-define=IS_PRO_VERSION=false \
|
||||
--dart-define=IS_BUSINESS_APP=false \
|
||||
--dart-define=USE_PROXY=false
|
||||
|
||||
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_consumer_maita.apk"
|
||||
echo "Saved: $OUTPUT_DIR/ponshu_room_consumer_maita.apk"
|
||||
echo ""
|
||||
|
||||
echo "[2/2] Building Eiji Consumer..."
|
||||
flutter build apk --release \
|
||||
--dart-define=GEMINI_API_KEY=$EIJI_KEY \
|
||||
--dart-define=IS_PRO_VERSION=false \
|
||||
--dart-define=IS_BUSINESS_APP=false \
|
||||
--dart-define=USE_PROXY=false
|
||||
|
||||
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_consumer_eiji.apk"
|
||||
echo "Saved: $OUTPUT_DIR/ponshu_room_consumer_eiji.apk"
|
||||
echo ""
|
||||
|
||||
echo "============================================================================"
|
||||
echo "Consumer build completed!"
|
||||
echo "============================================================================"
|
||||
ls -lh "$OUTPUT_DIR"
|
||||
|
|
@ -18,6 +18,15 @@ import 'services/migration_service.dart';
|
|||
/// デフォルトはfalse(Lite版) ※ponshu_room_liteディレクトリのため
|
||||
const bool isProVersion = bool.fromEnvironment('IS_PRO_VERSION', defaultValue: false);
|
||||
|
||||
/// 店舗向けビルドかどうかを判定するビルド時フラグ
|
||||
///
|
||||
/// ビルドコマンド:
|
||||
/// - 消費者向け: flutter build apk --release --dart-define=IS_BUSINESS_APP=false
|
||||
/// - 店舗向け: flutter build apk --release --dart-define=IS_BUSINESS_APP=true
|
||||
///
|
||||
/// デフォルトはfalse(消費者向け)
|
||||
const bool isBusinessApp = bool.fromEnvironment('IS_BUSINESS_APP', defaultValue: false);
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
|
|
|
|||
|
|
@ -127,7 +127,8 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
|||
});
|
||||
|
||||
final userProfile = ref.watch(userProfileProvider);
|
||||
final isBusiness = userProfile.isBusinessMode;
|
||||
// isBusinessApp=false(消費者向けビルド)では店舗モードを完全に無効化
|
||||
final isBusiness = isBusinessApp && userProfile.isBusinessMode;
|
||||
final t = Translations(userProfile.locale); // Translation helper
|
||||
|
||||
// Define Screens for each mode
|
||||
|
|
|
|||
Loading…
Reference in New Issue