- main.dart: App-Check-Provider per kReleaseMode umgeschaltet (Release = PlayIntegrity/AppAttest, Debug = Debug-Provider). Nötig, da die Functions App Check erzwingen — ein Release-Build mit Debug-Provider würde auf fremden Geräten bei jedem Function-Aufruf scheitern. - App-Icon aus assets/icon/icon.png via flutter_launcher_icons generiert (iOS-Set + Android-Mipmaps). - docs/legal/datenschutz.html: Platzhalter ausgefüllt, interner Hinweis raus. - firebase.json: hosting-Block (public: docs/legal, Redirect / -> /datenschutz). URL: https://leaf-it-to-me-app.web.app/datenschutz - Doku: firebase-einrichtung.md Schritt 9/10 + Hosting fortgeschrieben, handoff.md aktualisiert (iOS/TestFlight abgeschlossen, nur noch Android offen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMRhL16hB14xcfef1qez7N
38 lines
1.4 KiB
Dart
38 lines
1.4 KiB
Dart
import 'package:firebase_app_check/firebase_app_check.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'app.dart';
|
|
import 'core/settings/settings_provider.dart';
|
|
import 'firebase_options.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await Firebase.initializeApp(
|
|
options: DefaultFirebaseOptions.currentPlatform,
|
|
);
|
|
// Release-Builds (TestFlight/Play): echte Attestierung über Play Integrity
|
|
// (Android) bzw. App Attest (iOS). Debug-Builds nutzen weiter den
|
|
// Debug-Provider mit den in der Firebase-Console hinterlegten Debug-Tokens.
|
|
// Die onCall-Functions erzwingen App Check (enforceAppCheck: true), deshalb
|
|
// muss ein Release-Build zwingend einen echten Provider verwenden.
|
|
// Siehe docs/firebase-einrichtung.md Schritt 9.
|
|
await FirebaseAppCheck.instance.activate(
|
|
providerAndroid: kReleaseMode
|
|
? const AndroidPlayIntegrityProvider()
|
|
: AndroidDebugProvider(),
|
|
providerApple: kReleaseMode
|
|
? const AppleAppAttestProvider()
|
|
: AppleDebugProvider(),
|
|
);
|
|
final prefs = await SharedPreferences.getInstance();
|
|
runApp(
|
|
ProviderScope(
|
|
overrides: [sharedPreferencesProvider.overrideWithValue(prefs)],
|
|
child: const LeafItToMeApp(),
|
|
),
|
|
);
|
|
}
|