build: upgrade to Flutter 3.47.4 (AGP 9.1 / Gradle 9.3, iOS 15 + UIScene), refresh deps and CI
Build Android APK / Build Release APKs (push) Failing after 1m7s
Build Android APK / Build Release APKs (push) Failing after 1m7s
Flutter 3.24.5 -> 3.47.4 with the matching toolchain changes: - pubspec: Dart ^3.11, Firebase core 4 / auth 6 / firestore 6 / storage 13, drop unused image_cropper, logging, change_app_package_name, pdf_widget_wrapper; pin path_provider_android <2.3 (needs NDK/CMake, not feasible on the ARM64 Gitea runner) - Dart: CardTheme -> CardThemeData, replace deprecated withOpacity, Matrix4.scale, DropdownButtonFormField.value - iOS: deployment target 15.0, UIScene lifecycle (AppDelegate/Info.plist), untrack stale Podfile.lock, add LaunchImage asset set - Android: Gradle 9.3.1, AGP 9.1.0, Kotlin 2.4.0, google-services 4.5.0, layout.buildDirectory instead of removed Project.buildDir, remove manifest package attribute and duplicate MainActivity, kotlin.incremental=false - CI: pin FLUTTER_VERSION in both workflows; iOS on macos-26 with SwiftPM disabled (CocoaPods only); Gitea job keeps cirruslabs 3.44.0 as base image (images discontinued) and switches the bundled Flutter SDK by git tag Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,10 @@ on:
|
||||
- master
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
# Keep in sync with .github/workflows/build-ios.yaml and pubspec.yaml (environment).
|
||||
FLUTTER_VERSION: '3.47.4'
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
name: Build Release APKs
|
||||
@@ -21,17 +25,36 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
container:
|
||||
image: ghcr.io/cirruslabs/flutter:3.24.5
|
||||
# Cirrus Labs stopped publishing Flutter images in May 2026 (last tag: 3.44.0,
|
||||
# multi-arch amd64/arm64, Ubuntu 24.04, OpenJDK 21, Android SDK 36). The image is
|
||||
# only used for its JDK + Android SDK; the bundled Flutter SDK is switched to
|
||||
# FLUTTER_VERSION in the first step.
|
||||
image: ghcr.io/cirruslabs/flutter:3.44.0
|
||||
options: --privileged
|
||||
steps:
|
||||
- name: Switch Flutter SDK to pinned version
|
||||
run: |
|
||||
set -euo pipefail
|
||||
FLUTTER_ROOT="${FLUTTER_ROOT:-/sdks/flutter}"
|
||||
git config --global --add safe.directory "$FLUTTER_ROOT"
|
||||
git config --global --add safe.directory '*'
|
||||
CURRENT="$(git -C "$FLUTTER_ROOT" describe --tags --exact-match 2>/dev/null || true)"
|
||||
if [ "$CURRENT" != "$FLUTTER_VERSION" ]; then
|
||||
echo "Switching Flutter SDK from '${CURRENT:-unknown}' to '$FLUTTER_VERSION'"
|
||||
git -C "$FLUTTER_ROOT" fetch --depth 1 origin "refs/tags/${FLUTTER_VERSION}:refs/tags/${FLUTTER_VERSION}"
|
||||
git -C "$FLUTTER_ROOT" checkout -q "$FLUTTER_VERSION"
|
||||
# Drop the cache of the previous version; the Dart SDK and the engine
|
||||
# artifacts for the new version are downloaded on first use.
|
||||
rm -rf "$FLUTTER_ROOT/bin/cache"
|
||||
fi
|
||||
flutter --version
|
||||
|
||||
- name: Setup Node.js 20 & ARM64 Flutter Engine
|
||||
run: |
|
||||
ARCH=$(uname -m)
|
||||
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then NODE_ARCH="arm64"; else NODE_ARCH="x64"; fi
|
||||
curl -fsSL "https://nodejs.org/dist/v20.18.0/node-v20.18.0-linux-${NODE_ARCH}.tar.gz" | tar -xzf - -C /usr/local --strip-components=1
|
||||
node --version
|
||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
# On Linux ARM64, Flutter engine and Android AAPT2 need x86_64 emulation via QEMU.
|
||||
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
|
||||
@@ -58,8 +81,10 @@ jobs:
|
||||
done
|
||||
|
||||
flutter precache --android
|
||||
for dir in /sdks/flutter/bin/cache/artifacts/engine/android-*; do
|
||||
if [ -d "$dir/linux-x64" ]; then
|
||||
# Flutter (still) only ships an x86_64 gen_snapshot for Linux hosts; wrap it
|
||||
# with QEMU under the linux-arm64 path the tool expects.
|
||||
for dir in "${FLUTTER_ROOT:-/sdks/flutter}"/bin/cache/artifacts/engine/android-*; do
|
||||
if [ -d "$dir/linux-x64" ] && [ ! -x "$dir/linux-arm64/gen_snapshot" ]; then
|
||||
mkdir -p "$dir/linux-arm64"
|
||||
printf '#!/bin/sh\nSCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"\nexec %s -L /usr/x86_64-linux-gnu "$SCRIPT_DIR/../linux-x64/gen_snapshot" "$@"\n' "$QEMU_BIN" > "$dir/linux-arm64/gen_snapshot"
|
||||
chmod +x "$dir/linux-arm64/gen_snapshot"
|
||||
|
||||
@@ -10,49 +10,63 @@ on:
|
||||
- 'latest'
|
||||
workflow_dispatch:
|
||||
|
||||
# Only the newest push per branch/tag is built.
|
||||
concurrency:
|
||||
group: build-ios-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
# Keep in sync with .gitea/workflows/build-apk.yaml and pubspec.yaml (environment).
|
||||
FLUTTER_VERSION: '3.47.4'
|
||||
|
||||
jobs:
|
||||
build-ios:
|
||||
name: Build iOS IPA
|
||||
runs-on: macos-15
|
||||
# macOS 26 (arm64) ships Xcode 26 by default; Flutter 3.47 needs Xcode >= 16.
|
||||
runs-on: macos-26
|
||||
timeout-minutes: 60
|
||||
if: github.server_url == 'https://github.com'
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Select Xcode Version
|
||||
run: |
|
||||
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
|
||||
xcodebuild -version
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.24.5'
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
channel: stable
|
||||
cache: true
|
||||
|
||||
- name: Configure Flutter
|
||||
run: |
|
||||
# All plugins of this project are integrated via CocoaPods. Turning
|
||||
# off the (default-on) Swift Package Manager integration keeps the
|
||||
# build on that single, deterministic path.
|
||||
flutter config --no-enable-swift-package-manager
|
||||
|
||||
- name: Inspect Environment
|
||||
run: |
|
||||
flutter --version
|
||||
xcodebuild -version
|
||||
pod --version
|
||||
flutter --version
|
||||
flutter doctor -v
|
||||
|
||||
- name: Fetch Flutter Dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Clean Stale Podfile Lock
|
||||
run: |
|
||||
rm -rf ios/Pods ios/Podfile.lock
|
||||
- name: Build iOS (Unsigned)
|
||||
run: flutter build ios --release --no-codesign
|
||||
|
||||
- name: Build iOS (Unsigned IPA)
|
||||
- name: Package IPA
|
||||
run: |
|
||||
flutter build ios --release --no-codesign
|
||||
|
||||
rm -rf build/ios/iphoneos/Payload build/ios/iphoneos/oggauer-gemeindetrommler.ipa
|
||||
mkdir -p build/ios/iphoneos/Payload
|
||||
cp -r build/ios/iphoneos/Runner.app build/ios/iphoneos/Payload/
|
||||
set -euo pipefail
|
||||
cd build/ios/iphoneos
|
||||
zip -r oggauer-gemeindetrommler.ipa Payload
|
||||
|
||||
rm -rf Payload oggauer-gemeindetrommler.ipa
|
||||
mkdir Payload
|
||||
cp -R Runner.app Payload/
|
||||
zip -qry oggauer-gemeindetrommler.ipa Payload
|
||||
ls -lh oggauer-gemeindetrommler.ipa
|
||||
|
||||
- name: Upload IPA Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -60,3 +74,16 @@ jobs:
|
||||
name: oggauer-gemeindetrommler-ios
|
||||
path: build/ios/iphoneos/oggauer-gemeindetrommler.ipa
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Xcode Logs (on failure)
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ios-build-logs
|
||||
path: |
|
||||
~/Library/Logs/DiagnosticReports/*.ips
|
||||
build/ios/**/*.log
|
||||
ios/Podfile.lock
|
||||
if-no-files-found: ignore
|
||||
retention-days: 3
|
||||
|
||||
@@ -104,7 +104,7 @@ Die Sicherheit und Integrität der Bürgerdaten wird durch ein mehrstufiges Sich
|
||||
## 🏗️ Technische Architektur & Tech-Stack
|
||||
|
||||
### Verwendete Technologien:
|
||||
- **Framework:** [Flutter](https://flutter.dev) (Dart SDK `>=3.0.0`)
|
||||
- **Framework:** [Flutter](https://flutter.dev) `3.47.x` (Dart SDK `>=3.11`), Android `minSdk 23`, iOS `>= 15.0`
|
||||
- **Backend & Cloud Services (Google Firebase):**
|
||||
- `firebase_core` (Initialisierung)
|
||||
- `firebase_auth` (E-Mail & Passwort Authentifizierung, Gast-Modus)
|
||||
@@ -117,7 +117,7 @@ Die Sicherheit und Integrität der Bürgerdaten wird durch ein mehrstufiges Sich
|
||||
- `pdf`, `printing` (PDF-Generierung, In-App Vorschau & Druck)
|
||||
- `url_launcher` (System-Browser, Telefon- und E-Mail-Intents)
|
||||
- **Bildverarbeitung:**
|
||||
- `image_picker`, `image_cropper`, `cached_network_image`, `image`
|
||||
- `image_picker`, `cached_network_image`, `image`
|
||||
- **State Management:**
|
||||
- `provider` (`MultiProvider` Architektur)
|
||||
|
||||
@@ -150,25 +150,34 @@ lib/
|
||||
|
||||
---
|
||||
|
||||
## 🤖 CI/CD Pipeline (Gitea Actions)
|
||||
## 🤖 CI/CD Pipeline
|
||||
|
||||
Die App verfügt über eine vollautomatische Build-Pipeline für **Gitea Actions** (`.gitea/workflows/build-apk.yaml`):
|
||||
Die Flutter-Version ist zentral gepinnt (`FLUTTER_VERSION` in beiden Workflows, `environment` in `pubspec.yaml`) und muss bei einem Upgrade an allen drei Stellen gemeinsam angehoben werden.
|
||||
|
||||
- **Build-Container:** `ghcr.io/cirruslabs/flutter:3.24.5` mit vorkonfiguriertem Android SDK und Java 17.
|
||||
### Android (Gitea Actions, `.gitea/workflows/build-apk.yaml`)
|
||||
|
||||
- **Build-Container:** `ghcr.io/cirruslabs/flutter:3.44.0` (letztes von Cirrus Labs veröffentlichtes Image, liefert JDK 21 + Android SDK 36). Das darin enthaltene Flutter-SDK wird im ersten Schritt per `git checkout` auf `FLUTTER_VERSION` umgeschaltet.
|
||||
- **Runner:** Oracle Cloud ARM64 – x86_64-Werkzeuge (AAPT2, `gen_snapshot`) laufen über QEMU (`scripts/ci/qemu_intercept.c`).
|
||||
- **Automatisierte Qualitätskontrolle:** Führt vor jedem Build `flutter analyze` und `flutter test` aus.
|
||||
- **Erzeugte APK-Pakete:**
|
||||
1. `oggauer-gemeindetrommler-universal-release.apk` (Universelle Version für alle Android-Smartphones).
|
||||
2. `oggauer-gemeindetrommler-arm64-v8a.apk` (Optimiert für moderne 64-Bit Geräte).
|
||||
3. `oggauer-gemeindetrommler-armeabi-v7a.apk` (Für ältere 32-Bit Geräte).
|
||||
4. `oggauer-gemeindetrommler-x86_64.apk` (Für Emulatoren).
|
||||
- **Download:** Die gebauten APKs stehen nach jedem Durchlauf als ZIP-Artefakt (`oggauer-gemeindetrommler-apks`) im Gitea-Reiter **Aktionen** zum Download bereit.
|
||||
- **Download:** Die gebauten APKs stehen nach jedem Durchlauf als Artefakte im Gitea-Reiter **Aktionen** sowie im Release `latest` zum Download bereit.
|
||||
|
||||
### iOS (GitHub Actions, `.github/workflows/build-ios.yaml`)
|
||||
|
||||
- **Runner:** `macos-26` (Xcode 26), Flutter über `subosito/flutter-action`.
|
||||
- **Plugins:** ausschließlich über CocoaPods (Swift Package Manager ist im Workflow bewusst deaktiviert); `ios/Podfile.lock` wird nicht versioniert, `pod install` läuft bei jedem Build frisch.
|
||||
- **Ergebnis:** unsigniertes IPA (`flutter build ios --release --no-codesign`) als Artefakt `oggauer-gemeindetrommler-ios` – für die Verteilung muss es nachträglich signiert werden.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Einrichtung & Lokale Ausführung
|
||||
|
||||
### Voraussetzungen:
|
||||
- **Flutter SDK:** `>= 3.19.x`
|
||||
- **Flutter SDK:** `3.47.x` (stable) – identisch zur in den Workflows gepinnten Version
|
||||
- **Dart SDK:** Im Flutter SDK enthalten
|
||||
- **Android Studio / VS Code / Xcode** mit entsprechenden Emulatoren oder Testgeräten
|
||||
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
analyzer:
|
||||
exclude:
|
||||
- build/**
|
||||
- android/**
|
||||
- ios/**
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
|
||||
+17
-39
@@ -1,60 +1,34 @@
|
||||
plugins {
|
||||
id "com.android.application"
|
||||
id "kotlin-android"
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
// (With android.builtInKotlin=false the Flutter plugin applies kotlin-android itself.)
|
||||
id "dev.flutter.flutter-gradle-plugin"
|
||||
id "com.google.gms.google-services"
|
||||
}
|
||||
|
||||
def localProperties = new Properties()
|
||||
def localPropertiesFile = rootProject.file('local.properties')
|
||||
if (localPropertiesFile.exists()) {
|
||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
||||
localProperties.load(reader)
|
||||
}
|
||||
}
|
||||
|
||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||
if (flutterVersionCode == null) {
|
||||
flutterVersionCode = '1'
|
||||
}
|
||||
|
||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||||
if (flutterVersionName == null) {
|
||||
flutterVersionName = '1.0'
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "com.oggauergemeindetrommler.app"
|
||||
compileSdkVersion flutter.compileSdkVersion
|
||||
ndkVersion "26.1.10909125"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '17'
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "com.oggauergemeindetrommler.app"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||||
minSdkVersion 23
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
multiDexEnabled true
|
||||
// Flutter 3.47 defaults to 24; 23 (Android 6.0) is still supported and
|
||||
// is also the minimum required by the current Firebase Android SDKs.
|
||||
minSdkVersion flutter.minSdkVersion
|
||||
targetSdk flutter.targetSdkVersion
|
||||
// Read from pubspec.yaml (via local.properties); defaults to 1 / "1.0".
|
||||
versionCode flutter.versionCode
|
||||
versionName flutter.versionName
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -66,8 +40,12 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source '../..'
|
||||
}
|
||||
|
||||
dependencies {}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.oggauergemeindetrommler.app">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application
|
||||
android:label="Oggauer Gemeindetrommler"
|
||||
android:name="${applicationName}"
|
||||
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
package com.oggauergemeindetrommler.oggauer_gemeindetrommler
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity() {
|
||||
}
|
||||
+7
-18
@@ -1,4 +1,3 @@
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
@@ -6,28 +5,18 @@ allprojects {
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.buildDir = '../build'
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
subprojects {
|
||||
// Keep all Gradle outputs under <repo>/build so the Flutter CLI finds the APKs.
|
||||
// (Project.buildDir was removed in Gradle 9 -> use layout.buildDirectory.)
|
||||
def newBuildDir = rootProject.layout.buildDirectory.dir("../../build").get()
|
||||
rootProject.layout.buildDirectory.value(newBuildDir)
|
||||
|
||||
// Inject namespace into plugins that don't have it (required for AGP 8+)
|
||||
afterEvaluate { project ->
|
||||
if (project.hasProperty('android')) {
|
||||
project.android {
|
||||
if (namespace == null) {
|
||||
namespace project.group
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
subprojects {
|
||||
project.layout.buildDirectory.value(newBuildDir.dir(project.name))
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(':app')
|
||||
}
|
||||
|
||||
tasks.register("clean", Delete) {
|
||||
delete rootProject.buildDir
|
||||
delete rootProject.layout.buildDirectory
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
org.gradle.jvmargs=-Xmx1536M -Djdk.lang.Process.launchMechanism=vfork
|
||||
# vfork keeps process spawning cheap under QEMU user-mode emulation (ARM64 CI runner).
|
||||
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G -XX:+HeapDumpOnOutOfMemoryError -Djdk.lang.Process.launchMechanism=vfork
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
# Stay on the legacy AGP DSL / external Kotlin plugin until all Flutter plugins
|
||||
# support the AGP 9 built-in Kotlin (same as the Flutter 3.47 project template).
|
||||
android.newDsl=false
|
||||
android.builtInKotlin=false
|
||||
# Kotlin incremental compilation stores project-relative paths and breaks on Windows
|
||||
# when the pub cache (C:) and the project live on different drives
|
||||
# ("this and base files have different roots"). CI builds are clean anyway.
|
||||
kotlin.incremental=false
|
||||
|
||||
+1
-1
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip
|
||||
|
||||
@@ -20,11 +20,14 @@ pluginManagement {
|
||||
}
|
||||
}
|
||||
|
||||
// Versions follow the Flutter 3.47 project template (see
|
||||
// packages/flutter_tools/lib/src/android/gradle_utils.dart in the Flutter SDK).
|
||||
// Flutter refuses to build with AGP < 8.11.1, Kotlin < 2.2.20 or Gradle < 8.14.
|
||||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
id "com.android.application" version "8.5.2" apply false
|
||||
id "org.jetbrains.kotlin.android" version "1.9.22" apply false
|
||||
id "com.google.gms.google-services" version "4.4.1" apply false
|
||||
id "com.android.application" version "9.1.0" apply false
|
||||
id "org.jetbrains.kotlin.android" version "2.4.0" apply false
|
||||
id "com.google.gms.google-services" version "4.5.0" apply false
|
||||
}
|
||||
|
||||
include ":app"
|
||||
|
||||
@@ -32,3 +32,8 @@ Runner/GeneratedPluginRegistrant.*
|
||||
!default.mode2v3
|
||||
!default.pbxuser
|
||||
!default.perspectivev3
|
||||
|
||||
# Podfile.lock is intentionally not tracked: development happens on Windows (no
|
||||
# CocoaPods), and the iOS CI always runs a fresh `pod install`. A stale lock file
|
||||
# only causes "sandbox is not in sync" / incompatible pod version errors.
|
||||
Podfile.lock
|
||||
|
||||
@@ -20,7 +20,5 @@
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>11.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
+6
-2
@@ -1,4 +1,5 @@
|
||||
platform :ios, '13.0'
|
||||
# Flutter 3.47+ requires iOS 15.0 as the minimum deployment target.
|
||||
platform :ios, '15.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
@@ -37,7 +38,10 @@ post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
flutter_additional_ios_build_settings(target)
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
|
||||
# Keep every pod on the same deployment target as the app so old
|
||||
# podspecs do not drag the minimum back below what Flutter supports.
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
|
||||
# Pods never need to be signed; the CI produces an unsigned IPA.
|
||||
config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO'
|
||||
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
|
||||
end
|
||||
|
||||
@@ -1,842 +0,0 @@
|
||||
PODS:
|
||||
- abseil/algorithm (1.20211102.0):
|
||||
- abseil/algorithm/algorithm (= 1.20211102.0)
|
||||
- abseil/algorithm/container (= 1.20211102.0)
|
||||
- abseil/algorithm/algorithm (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/algorithm/container (1.20211102.0):
|
||||
- abseil/algorithm/algorithm
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/base (1.20211102.0):
|
||||
- abseil/base/atomic_hook (= 1.20211102.0)
|
||||
- abseil/base/base (= 1.20211102.0)
|
||||
- abseil/base/base_internal (= 1.20211102.0)
|
||||
- abseil/base/config (= 1.20211102.0)
|
||||
- abseil/base/core_headers (= 1.20211102.0)
|
||||
- abseil/base/dynamic_annotations (= 1.20211102.0)
|
||||
- abseil/base/endian (= 1.20211102.0)
|
||||
- abseil/base/errno_saver (= 1.20211102.0)
|
||||
- abseil/base/fast_type_id (= 1.20211102.0)
|
||||
- abseil/base/log_severity (= 1.20211102.0)
|
||||
- abseil/base/malloc_internal (= 1.20211102.0)
|
||||
- abseil/base/pretty_function (= 1.20211102.0)
|
||||
- abseil/base/raw_logging_internal (= 1.20211102.0)
|
||||
- abseil/base/spinlock_wait (= 1.20211102.0)
|
||||
- abseil/base/strerror (= 1.20211102.0)
|
||||
- abseil/base/throw_delegate (= 1.20211102.0)
|
||||
- abseil/base/atomic_hook (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/base (1.20211102.0):
|
||||
- abseil/base/atomic_hook
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/log_severity
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/base/spinlock_wait
|
||||
- abseil/meta/type_traits
|
||||
- abseil/base/base_internal (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/meta/type_traits
|
||||
- abseil/base/config (1.20211102.0)
|
||||
- abseil/base/core_headers (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/dynamic_annotations (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/errno_saver (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/fast_type_id (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/log_severity (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/malloc_internal (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/base/pretty_function (1.20211102.0)
|
||||
- abseil/base/raw_logging_internal (1.20211102.0):
|
||||
- abseil/base/atomic_hook
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/log_severity
|
||||
- abseil/base/spinlock_wait (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/errno_saver
|
||||
- abseil/base/strerror (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/errno_saver
|
||||
- abseil/base/throw_delegate (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/container/common (1.20211102.0):
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/optional
|
||||
- abseil/container/compressed_tuple (1.20211102.0):
|
||||
- abseil/utility/utility
|
||||
- abseil/container/container_memory (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/memory/memory
|
||||
- abseil/meta/type_traits
|
||||
- abseil/utility/utility
|
||||
- abseil/container/fixed_array (1.20211102.0):
|
||||
- abseil/algorithm/algorithm
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/container/compressed_tuple
|
||||
- abseil/memory/memory
|
||||
- abseil/container/flat_hash_map (1.20211102.0):
|
||||
- abseil/algorithm/container
|
||||
- abseil/container/container_memory
|
||||
- abseil/container/hash_function_defaults
|
||||
- abseil/container/raw_hash_map
|
||||
- abseil/memory/memory
|
||||
- abseil/container/hash_function_defaults (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/hash/hash
|
||||
- abseil/strings/cord
|
||||
- abseil/strings/strings
|
||||
- abseil/container/hash_policy_traits (1.20211102.0):
|
||||
- abseil/meta/type_traits
|
||||
- abseil/container/hashtable_debug_hooks (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/container/hashtablez_sampler (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/core_headers
|
||||
- abseil/container/have_sse
|
||||
- abseil/debugging/stacktrace
|
||||
- abseil/memory/memory
|
||||
- abseil/profiling/exponential_biased
|
||||
- abseil/profiling/sample_recorder
|
||||
- abseil/synchronization/synchronization
|
||||
- abseil/utility/utility
|
||||
- abseil/container/have_sse (1.20211102.0)
|
||||
- abseil/container/inlined_vector (1.20211102.0):
|
||||
- abseil/algorithm/algorithm
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/container/inlined_vector_internal
|
||||
- abseil/memory/memory
|
||||
- abseil/container/inlined_vector_internal (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/container/compressed_tuple
|
||||
- abseil/memory/memory
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/span
|
||||
- abseil/container/layout (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/strings/strings
|
||||
- abseil/types/span
|
||||
- abseil/utility/utility
|
||||
- abseil/container/raw_hash_map (1.20211102.0):
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/container/container_memory
|
||||
- abseil/container/raw_hash_set
|
||||
- abseil/container/raw_hash_set (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/container/common
|
||||
- abseil/container/compressed_tuple
|
||||
- abseil/container/container_memory
|
||||
- abseil/container/hash_policy_traits
|
||||
- abseil/container/hashtable_debug_hooks
|
||||
- abseil/container/hashtablez_sampler
|
||||
- abseil/container/have_sse
|
||||
- abseil/memory/memory
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/utility/utility
|
||||
- abseil/debugging/debugging_internal (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/errno_saver
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/debugging/demangle_internal (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/debugging/stacktrace (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/debugging/debugging_internal
|
||||
- abseil/debugging/symbolize (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/malloc_internal
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/debugging/debugging_internal
|
||||
- abseil/debugging/demangle_internal
|
||||
- abseil/strings/strings
|
||||
- abseil/functional/bind_front (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/container/compressed_tuple
|
||||
- abseil/meta/type_traits
|
||||
- abseil/utility/utility
|
||||
- abseil/functional/function_ref (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/hash/city (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/hash/hash (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/container/fixed_array
|
||||
- abseil/hash/city
|
||||
- abseil/hash/low_level_hash
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/int128
|
||||
- abseil/strings/strings
|
||||
- abseil/types/optional
|
||||
- abseil/types/variant
|
||||
- abseil/utility/utility
|
||||
- abseil/hash/low_level_hash (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/endian
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/int128
|
||||
- abseil/memory (1.20211102.0):
|
||||
- abseil/memory/memory (= 1.20211102.0)
|
||||
- abseil/memory/memory (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/meta (1.20211102.0):
|
||||
- abseil/meta/type_traits (= 1.20211102.0)
|
||||
- abseil/meta/type_traits (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/numeric/bits (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/numeric/int128 (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/representation (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/profiling/exponential_biased (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/profiling/sample_recorder (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/synchronization/synchronization
|
||||
- abseil/time/time
|
||||
- abseil/random/distributions (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/random/internal/distribution_caller
|
||||
- abseil/random/internal/fast_uniform_bits
|
||||
- abseil/random/internal/fastmath
|
||||
- abseil/random/internal/generate_real
|
||||
- abseil/random/internal/iostream_state_saver
|
||||
- abseil/random/internal/traits
|
||||
- abseil/random/internal/uniform_helper
|
||||
- abseil/random/internal/wide_multiply
|
||||
- abseil/strings/strings
|
||||
- abseil/random/internal/distribution_caller (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/fast_type_id
|
||||
- abseil/utility/utility
|
||||
- abseil/random/internal/fast_uniform_bits (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/meta/type_traits
|
||||
- abseil/random/internal/fastmath (1.20211102.0):
|
||||
- abseil/numeric/bits
|
||||
- abseil/random/internal/generate_real (1.20211102.0):
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/random/internal/fastmath
|
||||
- abseil/random/internal/traits
|
||||
- abseil/random/internal/iostream_state_saver (1.20211102.0):
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/int128
|
||||
- abseil/random/internal/nonsecure_base (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/random/internal/pool_urbg
|
||||
- abseil/random/internal/salted_seed_seq
|
||||
- abseil/random/internal/seed_material
|
||||
- abseil/types/optional
|
||||
- abseil/types/span
|
||||
- abseil/random/internal/pcg_engine (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/int128
|
||||
- abseil/random/internal/fastmath
|
||||
- abseil/random/internal/iostream_state_saver
|
||||
- abseil/random/internal/platform (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/random/internal/pool_urbg (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/random/internal/randen
|
||||
- abseil/random/internal/seed_material
|
||||
- abseil/random/internal/traits
|
||||
- abseil/random/seed_gen_exception
|
||||
- abseil/types/span
|
||||
- abseil/random/internal/randen (1.20211102.0):
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/random/internal/platform
|
||||
- abseil/random/internal/randen_hwaes
|
||||
- abseil/random/internal/randen_slow
|
||||
- abseil/random/internal/randen_engine (1.20211102.0):
|
||||
- abseil/base/endian
|
||||
- abseil/meta/type_traits
|
||||
- abseil/random/internal/iostream_state_saver
|
||||
- abseil/random/internal/randen
|
||||
- abseil/random/internal/randen_hwaes (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/random/internal/platform
|
||||
- abseil/random/internal/randen_hwaes_impl
|
||||
- abseil/random/internal/randen_hwaes_impl (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/numeric/int128
|
||||
- abseil/random/internal/platform
|
||||
- abseil/random/internal/randen_slow (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/numeric/int128
|
||||
- abseil/random/internal/platform
|
||||
- abseil/random/internal/salted_seed_seq (1.20211102.0):
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/meta/type_traits
|
||||
- abseil/random/internal/seed_material
|
||||
- abseil/types/optional
|
||||
- abseil/types/span
|
||||
- abseil/random/internal/seed_material (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/random/internal/fast_uniform_bits
|
||||
- abseil/strings/strings
|
||||
- abseil/types/optional
|
||||
- abseil/types/span
|
||||
- abseil/random/internal/traits (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/random/internal/uniform_helper (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/meta/type_traits
|
||||
- abseil/random/internal/traits
|
||||
- abseil/random/internal/wide_multiply (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/int128
|
||||
- abseil/random/internal/traits
|
||||
- abseil/random/random (1.20211102.0):
|
||||
- abseil/random/distributions
|
||||
- abseil/random/internal/nonsecure_base
|
||||
- abseil/random/internal/pcg_engine
|
||||
- abseil/random/internal/pool_urbg
|
||||
- abseil/random/internal/randen_engine
|
||||
- abseil/random/seed_sequences
|
||||
- abseil/random/seed_gen_exception (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/random/seed_sequences (1.20211102.0):
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/random/internal/nonsecure_base
|
||||
- abseil/random/internal/pool_urbg
|
||||
- abseil/random/internal/salted_seed_seq
|
||||
- abseil/random/internal/seed_material
|
||||
- abseil/random/seed_gen_exception
|
||||
- abseil/types/span
|
||||
- abseil/status/status (1.20211102.0):
|
||||
- abseil/base/atomic_hook
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/debugging/stacktrace
|
||||
- abseil/debugging/symbolize
|
||||
- abseil/functional/function_ref
|
||||
- abseil/strings/cord
|
||||
- abseil/strings/str_format
|
||||
- abseil/strings/strings
|
||||
- abseil/types/optional
|
||||
- abseil/status/statusor (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/meta/type_traits
|
||||
- abseil/status/status
|
||||
- abseil/strings/strings
|
||||
- abseil/types/variant
|
||||
- abseil/utility/utility
|
||||
- abseil/strings/cord (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/container/fixed_array
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/functional/function_ref
|
||||
- abseil/meta/type_traits
|
||||
- abseil/strings/cord_internal
|
||||
- abseil/strings/cordz_functions
|
||||
- abseil/strings/cordz_info
|
||||
- abseil/strings/cordz_statistics
|
||||
- abseil/strings/cordz_update_scope
|
||||
- abseil/strings/cordz_update_tracker
|
||||
- abseil/strings/internal
|
||||
- abseil/strings/str_format
|
||||
- abseil/strings/strings
|
||||
- abseil/types/optional
|
||||
- abseil/strings/cord_internal (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/container/compressed_tuple
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/container/layout
|
||||
- abseil/functional/function_ref
|
||||
- abseil/meta/type_traits
|
||||
- abseil/strings/strings
|
||||
- abseil/types/span
|
||||
- abseil/strings/cordz_functions (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/profiling/exponential_biased
|
||||
- abseil/strings/cordz_handle (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/synchronization/synchronization
|
||||
- abseil/strings/cordz_info (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/container/inlined_vector
|
||||
- abseil/debugging/stacktrace
|
||||
- abseil/strings/cord_internal
|
||||
- abseil/strings/cordz_functions
|
||||
- abseil/strings/cordz_handle
|
||||
- abseil/strings/cordz_statistics
|
||||
- abseil/strings/cordz_update_tracker
|
||||
- abseil/synchronization/synchronization
|
||||
- abseil/types/span
|
||||
- abseil/strings/cordz_statistics (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/strings/cordz_update_tracker
|
||||
- abseil/strings/cordz_update_scope (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/strings/cord_internal
|
||||
- abseil/strings/cordz_info
|
||||
- abseil/strings/cordz_update_tracker
|
||||
- abseil/strings/cordz_update_tracker (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/strings/internal (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/meta/type_traits
|
||||
- abseil/strings/str_format (1.20211102.0):
|
||||
- abseil/strings/str_format_internal
|
||||
- abseil/strings/str_format_internal (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/functional/function_ref
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/int128
|
||||
- abseil/numeric/representation
|
||||
- abseil/strings/strings
|
||||
- abseil/types/optional
|
||||
- abseil/types/span
|
||||
- abseil/strings/strings (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/endian
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/memory/memory
|
||||
- abseil/meta/type_traits
|
||||
- abseil/numeric/bits
|
||||
- abseil/numeric/int128
|
||||
- abseil/strings/internal
|
||||
- abseil/synchronization/graphcycles_internal (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/malloc_internal
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/synchronization/kernel_timeout_internal (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/time/time
|
||||
- abseil/synchronization/synchronization (1.20211102.0):
|
||||
- abseil/base/atomic_hook
|
||||
- abseil/base/base
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/dynamic_annotations
|
||||
- abseil/base/malloc_internal
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/debugging/stacktrace
|
||||
- abseil/debugging/symbolize
|
||||
- abseil/synchronization/graphcycles_internal
|
||||
- abseil/synchronization/kernel_timeout_internal
|
||||
- abseil/time/time
|
||||
- abseil/time (1.20211102.0):
|
||||
- abseil/time/internal (= 1.20211102.0)
|
||||
- abseil/time/time (= 1.20211102.0)
|
||||
- abseil/time/internal (1.20211102.0):
|
||||
- abseil/time/internal/cctz (= 1.20211102.0)
|
||||
- abseil/time/internal/cctz (1.20211102.0):
|
||||
- abseil/time/internal/cctz/civil_time (= 1.20211102.0)
|
||||
- abseil/time/internal/cctz/time_zone (= 1.20211102.0)
|
||||
- abseil/time/internal/cctz/civil_time (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/time/internal/cctz/time_zone (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/time/internal/cctz/civil_time
|
||||
- abseil/time/time (1.20211102.0):
|
||||
- abseil/base/base
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/numeric/int128
|
||||
- abseil/strings/strings
|
||||
- abseil/time/internal/cctz/civil_time
|
||||
- abseil/time/internal/cctz/time_zone
|
||||
- abseil/types (1.20211102.0):
|
||||
- abseil/types/any (= 1.20211102.0)
|
||||
- abseil/types/bad_any_cast (= 1.20211102.0)
|
||||
- abseil/types/bad_any_cast_impl (= 1.20211102.0)
|
||||
- abseil/types/bad_optional_access (= 1.20211102.0)
|
||||
- abseil/types/bad_variant_access (= 1.20211102.0)
|
||||
- abseil/types/compare (= 1.20211102.0)
|
||||
- abseil/types/optional (= 1.20211102.0)
|
||||
- abseil/types/span (= 1.20211102.0)
|
||||
- abseil/types/variant (= 1.20211102.0)
|
||||
- abseil/types/any (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/fast_type_id
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/bad_any_cast
|
||||
- abseil/utility/utility
|
||||
- abseil/types/bad_any_cast (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/types/bad_any_cast_impl
|
||||
- abseil/types/bad_any_cast_impl (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/types/bad_optional_access (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/types/bad_variant_access (1.20211102.0):
|
||||
- abseil/base/config
|
||||
- abseil/base/raw_logging_internal
|
||||
- abseil/types/compare (1.20211102.0):
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/optional (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/memory/memory
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/bad_optional_access
|
||||
- abseil/utility/utility
|
||||
- abseil/types/span (1.20211102.0):
|
||||
- abseil/algorithm/algorithm
|
||||
- abseil/base/core_headers
|
||||
- abseil/base/throw_delegate
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/variant (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/base/core_headers
|
||||
- abseil/meta/type_traits
|
||||
- abseil/types/bad_variant_access
|
||||
- abseil/utility/utility
|
||||
- abseil/utility/utility (1.20211102.0):
|
||||
- abseil/base/base_internal
|
||||
- abseil/base/config
|
||||
- abseil/meta/type_traits
|
||||
- BoringSSL-GRPC (0.0.24):
|
||||
- BoringSSL-GRPC/Implementation (= 0.0.24)
|
||||
- BoringSSL-GRPC/Interface (= 0.0.24)
|
||||
- BoringSSL-GRPC/Implementation (0.0.24):
|
||||
- BoringSSL-GRPC/Interface (= 0.0.24)
|
||||
- BoringSSL-GRPC/Interface (0.0.24)
|
||||
- cloud_firestore (4.6.0):
|
||||
- Firebase/Firestore (= 10.7.0)
|
||||
- firebase_core
|
||||
- Flutter
|
||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||
- Firebase/Auth (10.7.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAuth (~> 10.7.0)
|
||||
- Firebase/CoreOnly (10.7.0):
|
||||
- FirebaseCore (= 10.7.0)
|
||||
- Firebase/Firestore (10.7.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseFirestore (~> 10.7.0)
|
||||
- Firebase/Storage (10.7.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseStorage (~> 10.7.0)
|
||||
- firebase_auth (4.5.0):
|
||||
- Firebase/Auth (= 10.7.0)
|
||||
- firebase_core
|
||||
- Flutter
|
||||
- firebase_core (2.11.0):
|
||||
- Firebase/CoreOnly (= 10.7.0)
|
||||
- Flutter
|
||||
- firebase_storage (11.1.2):
|
||||
- Firebase/Storage (= 10.7.0)
|
||||
- firebase_core
|
||||
- Flutter
|
||||
- FirebaseAppCheckInterop (10.9.0)
|
||||
- FirebaseAuth (10.7.0):
|
||||
- FirebaseCore (~> 10.0)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 7.8)
|
||||
- GoogleUtilities/Environment (~> 7.8)
|
||||
- GTMSessionFetcher/Core (< 4.0, >= 2.1)
|
||||
- FirebaseAuthInterop (10.9.0)
|
||||
- FirebaseCore (10.7.0):
|
||||
- FirebaseCoreInternal (~> 10.0)
|
||||
- GoogleUtilities/Environment (~> 7.8)
|
||||
- GoogleUtilities/Logger (~> 7.8)
|
||||
- FirebaseCoreExtension (10.9.0):
|
||||
- FirebaseCore (~> 10.0)
|
||||
- FirebaseCoreInternal (10.9.0):
|
||||
- "GoogleUtilities/NSData+zlib (~> 7.8)"
|
||||
- FirebaseFirestore (10.7.0):
|
||||
- abseil/algorithm (~> 1.20211102.0)
|
||||
- abseil/base (~> 1.20211102.0)
|
||||
- abseil/container/flat_hash_map (~> 1.20211102.0)
|
||||
- abseil/memory (~> 1.20211102.0)
|
||||
- abseil/meta (~> 1.20211102.0)
|
||||
- abseil/strings/strings (~> 1.20211102.0)
|
||||
- abseil/time (~> 1.20211102.0)
|
||||
- abseil/types (~> 1.20211102.0)
|
||||
- FirebaseCore (~> 10.0)
|
||||
- "gRPC-C++ (~> 1.44.0)"
|
||||
- leveldb-library (~> 1.22)
|
||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||
- FirebaseStorage (10.7.0):
|
||||
- FirebaseAppCheckInterop (~> 10.0)
|
||||
- FirebaseAuthInterop (~> 10.0)
|
||||
- FirebaseCore (~> 10.0)
|
||||
- FirebaseCoreExtension (~> 10.0)
|
||||
- GTMSessionFetcher/Core (< 4.0, >= 2.1)
|
||||
- Flutter (1.0.0)
|
||||
- FMDB (2.7.5):
|
||||
- FMDB/standard (= 2.7.5)
|
||||
- FMDB/standard (2.7.5)
|
||||
- GoogleUtilities/AppDelegateSwizzler (7.11.1):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (7.11.1):
|
||||
- PromisesObjC (< 3.0, >= 1.2)
|
||||
- GoogleUtilities/Logger (7.11.1):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Network (7.11.1):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (7.11.1)"
|
||||
- GoogleUtilities/Reachability (7.11.1):
|
||||
- GoogleUtilities/Logger
|
||||
- "gRPC-C++ (1.44.0)":
|
||||
- "gRPC-C++/Implementation (= 1.44.0)"
|
||||
- "gRPC-C++/Interface (= 1.44.0)"
|
||||
- "gRPC-C++/Implementation (1.44.0)":
|
||||
- abseil/base/base (= 1.20211102.0)
|
||||
- abseil/base/core_headers (= 1.20211102.0)
|
||||
- abseil/container/flat_hash_map (= 1.20211102.0)
|
||||
- abseil/container/inlined_vector (= 1.20211102.0)
|
||||
- abseil/functional/bind_front (= 1.20211102.0)
|
||||
- abseil/hash/hash (= 1.20211102.0)
|
||||
- abseil/memory/memory (= 1.20211102.0)
|
||||
- abseil/random/random (= 1.20211102.0)
|
||||
- abseil/status/status (= 1.20211102.0)
|
||||
- abseil/status/statusor (= 1.20211102.0)
|
||||
- abseil/strings/cord (= 1.20211102.0)
|
||||
- abseil/strings/str_format (= 1.20211102.0)
|
||||
- abseil/strings/strings (= 1.20211102.0)
|
||||
- abseil/synchronization/synchronization (= 1.20211102.0)
|
||||
- abseil/time/time (= 1.20211102.0)
|
||||
- abseil/types/optional (= 1.20211102.0)
|
||||
- abseil/types/variant (= 1.20211102.0)
|
||||
- abseil/utility/utility (= 1.20211102.0)
|
||||
- "gRPC-C++/Interface (= 1.44.0)"
|
||||
- gRPC-Core (= 1.44.0)
|
||||
- "gRPC-C++/Interface (1.44.0)"
|
||||
- gRPC-Core (1.44.0):
|
||||
- gRPC-Core/Implementation (= 1.44.0)
|
||||
- gRPC-Core/Interface (= 1.44.0)
|
||||
- gRPC-Core/Implementation (1.44.0):
|
||||
- abseil/base/base (= 1.20211102.0)
|
||||
- abseil/base/core_headers (= 1.20211102.0)
|
||||
- abseil/container/flat_hash_map (= 1.20211102.0)
|
||||
- abseil/container/inlined_vector (= 1.20211102.0)
|
||||
- abseil/functional/bind_front (= 1.20211102.0)
|
||||
- abseil/hash/hash (= 1.20211102.0)
|
||||
- abseil/memory/memory (= 1.20211102.0)
|
||||
- abseil/random/random (= 1.20211102.0)
|
||||
- abseil/status/status (= 1.20211102.0)
|
||||
- abseil/status/statusor (= 1.20211102.0)
|
||||
- abseil/strings/cord (= 1.20211102.0)
|
||||
- abseil/strings/str_format (= 1.20211102.0)
|
||||
- abseil/strings/strings (= 1.20211102.0)
|
||||
- abseil/synchronization/synchronization (= 1.20211102.0)
|
||||
- abseil/time/time (= 1.20211102.0)
|
||||
- abseil/types/optional (= 1.20211102.0)
|
||||
- abseil/types/variant (= 1.20211102.0)
|
||||
- abseil/utility/utility (= 1.20211102.0)
|
||||
- BoringSSL-GRPC (= 0.0.24)
|
||||
- gRPC-Core/Interface (= 1.44.0)
|
||||
- Libuv-gRPC (= 0.0.10)
|
||||
- gRPC-Core/Interface (1.44.0)
|
||||
- GTMSessionFetcher/Core (3.1.1)
|
||||
- image_picker_ios (0.0.1):
|
||||
- Flutter
|
||||
- leveldb-library (1.22.2)
|
||||
- Libuv-gRPC (0.0.10):
|
||||
- Libuv-gRPC/Implementation (= 0.0.10)
|
||||
- Libuv-gRPC/Interface (= 0.0.10)
|
||||
- Libuv-gRPC/Implementation (0.0.10):
|
||||
- Libuv-gRPC/Interface (= 0.0.10)
|
||||
- Libuv-gRPC/Interface (0.0.10)
|
||||
- nanopb (2.30909.0):
|
||||
- nanopb/decode (= 2.30909.0)
|
||||
- nanopb/encode (= 2.30909.0)
|
||||
- nanopb/decode (2.30909.0)
|
||||
- nanopb/encode (2.30909.0)
|
||||
- path_provider_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- PromisesObjC (2.2.0)
|
||||
- sqflite (0.0.2):
|
||||
- Flutter
|
||||
- FMDB (>= 2.7.5)
|
||||
|
||||
DEPENDENCIES:
|
||||
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
|
||||
- firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
|
||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||
- firebase_storage (from `.symlinks/plugins/firebase_storage/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
|
||||
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- abseil
|
||||
- BoringSSL-GRPC
|
||||
- Firebase
|
||||
- FirebaseAppCheckInterop
|
||||
- FirebaseAuth
|
||||
- FirebaseAuthInterop
|
||||
- FirebaseCore
|
||||
- FirebaseCoreExtension
|
||||
- FirebaseCoreInternal
|
||||
- FirebaseFirestore
|
||||
- FirebaseStorage
|
||||
- FMDB
|
||||
- GoogleUtilities
|
||||
- "gRPC-C++"
|
||||
- gRPC-Core
|
||||
- GTMSessionFetcher
|
||||
- leveldb-library
|
||||
- Libuv-gRPC
|
||||
- nanopb
|
||||
- PromisesObjC
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
cloud_firestore:
|
||||
:path: ".symlinks/plugins/cloud_firestore/ios"
|
||||
firebase_auth:
|
||||
:path: ".symlinks/plugins/firebase_auth/ios"
|
||||
firebase_core:
|
||||
:path: ".symlinks/plugins/firebase_core/ios"
|
||||
firebase_storage:
|
||||
:path: ".symlinks/plugins/firebase_storage/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
image_picker_ios:
|
||||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
path_provider_foundation:
|
||||
:path: ".symlinks/plugins/path_provider_foundation/ios"
|
||||
sqflite:
|
||||
:path: ".symlinks/plugins/sqflite/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
abseil: ebe5b5529fb05d93a8bdb7951607be08b7fa71bc
|
||||
BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33
|
||||
cloud_firestore: 3809dfc121ab99b81bba51eb84ac6ca3f9033325
|
||||
Firebase: 0219acf760880eeec8ce479895bd7767466d9f81
|
||||
firebase_auth: 1eb69de8f57040c5c78bb3267412e9cb395fd08c
|
||||
firebase_core: dee76ded6c693fdb38b8ea39aef7129e32e587a3
|
||||
firebase_storage: f6fb3e54e886182b5ab5cf514da1d9ceb196fa2f
|
||||
FirebaseAppCheckInterop: e69dde5cd51b88ee1b4339d6766b691272256f9b
|
||||
FirebaseAuth: dd64c01631df724b09f33e584625775c52f7d71f
|
||||
FirebaseAuthInterop: e53c08e60a02de17d1ab77c5032db8ae22d3a799
|
||||
FirebaseCore: e317665b9d744727a97e623edbbed009320afdd7
|
||||
FirebaseCoreExtension: d3e9bba2930a8033042112397cd9f006a1bb203d
|
||||
FirebaseCoreInternal: d2b4acb827908e72eca47a9fd896767c3053921e
|
||||
FirebaseFirestore: 3963a6edd1c84b4748dab3e2c62624a29d03eca1
|
||||
FirebaseStorage: 4841efa304543e1f9e4ca116c559c7a1ea2a9d0f
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749
|
||||
"gRPC-C++": 9675f953ace2b3de7c506039d77be1f2e77a8db2
|
||||
gRPC-Core: 943e491cb0d45598b0b0eb9e910c88080369290b
|
||||
GTMSessionFetcher: e8647203b65cee28c5f73d0f473d096653945e72
|
||||
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
|
||||
leveldb-library: f03246171cce0484482ec291f88b6d563699ee06
|
||||
Libuv-gRPC: 55e51798e14ef436ad9bc45d12d43b77b49df378
|
||||
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
|
||||
path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
|
||||
PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
|
||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||
|
||||
PODFILE CHECKSUM: 7d6b9db9243dbc65e9914f56de22b83205a8e90d
|
||||
|
||||
COCOAPODS: 1.12.1
|
||||
@@ -160,7 +160,7 @@
|
||||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1300;
|
||||
LastUpgradeCheck = 1510;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
@@ -348,7 +348,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -369,7 +369,7 @@
|
||||
DEVELOPMENT_TEAM = 4YF7BFHHRH;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
@@ -436,7 +436,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -486,7 +486,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -509,7 +509,7 @@
|
||||
DEVELOPMENT_TEAM = 4YF7BFHHRH;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
@@ -541,7 +541,7 @@
|
||||
DEVELOPMENT_TEAM = 4YF7BFHHRH;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import UIKit
|
||||
import Flutter
|
||||
import UIKit
|
||||
|
||||
@UIApplicationMain
|
||||
@objc class AppDelegate: FlutterAppDelegate {
|
||||
@main
|
||||
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
|
||||
override func application(
|
||||
_ application: UIApplication,
|
||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||
) -> Bool {
|
||||
GeneratedPluginRegistrant.register(with: self)
|
||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||
}
|
||||
|
||||
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
|
||||
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
@@ -0,0 +1,5 @@
|
||||
# Launch Screen Assets
|
||||
|
||||
You can customize the launch screen with your own desired assets by replacing the image files in this directory.
|
||||
|
||||
You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
|
||||
@@ -26,6 +26,27 @@
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIApplicationSceneManifest</key>
|
||||
<dict>
|
||||
<key>UIApplicationSupportsMultipleScenes</key>
|
||||
<false/>
|
||||
<key>UISceneConfigurations</key>
|
||||
<dict>
|
||||
<key>UIWindowSceneSessionRoleApplication</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UISceneClassName</key>
|
||||
<string>UIWindowScene</string>
|
||||
<key>UISceneConfigurationName</key>
|
||||
<string>flutter</string>
|
||||
<key>UISceneDelegateClassName</key>
|
||||
<string>FlutterSceneDelegate</string>
|
||||
<key>UISceneStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ class MyApp extends StatelessWidget {
|
||||
backgroundColor: Colors.white,
|
||||
foregroundColor: Colors.black87,
|
||||
),
|
||||
cardTheme: CardTheme(
|
||||
cardTheme: CardThemeData(
|
||||
elevation: 1,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
|
||||
@@ -215,7 +215,7 @@ class _AddIssueScreenState extends State<AddIssueScreen> {
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
DropdownButtonFormField<String>(
|
||||
value: _selectedStreet,
|
||||
initialValue: _selectedStreet,
|
||||
decoration: const InputDecoration(
|
||||
labelText: 'Straße / Örtlichkeit *',
|
||||
border: OutlineInputBorder(),
|
||||
@@ -232,7 +232,7 @@ class _AddIssueScreenState extends State<AddIssueScreen> {
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
DropdownButtonFormField<String>(
|
||||
value: _selectedCategory,
|
||||
initialValue: _selectedCategory,
|
||||
decoration: const InputDecoration(
|
||||
labelText: 'Grundlage / Kategorie *',
|
||||
border: OutlineInputBorder(),
|
||||
|
||||
@@ -284,7 +284,7 @@ class _AdminMessagesScreenState extends State<AdminMessagesScreen> {
|
||||
return Expanded(
|
||||
child: OutlinedButton(
|
||||
style: OutlinedButton.styleFrom(
|
||||
backgroundColor: isCurrent ? color.withOpacity(0.15) : null,
|
||||
backgroundColor: isCurrent ? color.withValues(alpha: 0.15) : null,
|
||||
side: BorderSide(
|
||||
color: isCurrent ? color : Colors.grey.shade300,
|
||||
width: isCurrent ? 2 : 1,
|
||||
@@ -332,7 +332,7 @@ class _AdminMessagesScreenState extends State<AdminMessagesScreen> {
|
||||
decoration: BoxDecoration(
|
||||
color: bg,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(color: fg.withOpacity(0.3)),
|
||||
border: Border.all(color: fg.withValues(alpha: 0.3)),
|
||||
),
|
||||
child: Text(
|
||||
status,
|
||||
|
||||
@@ -291,7 +291,7 @@ class _AuthDialogState extends State<AuthDialog>
|
||||
child: Image.asset(
|
||||
'assets/images/logo.png',
|
||||
height: 28,
|
||||
errorBuilder: (_, __, ___) => const Icon(
|
||||
errorBuilder: (_, _, _) => const Icon(
|
||||
Icons.campaign,
|
||||
color: Colors.blue,
|
||||
),
|
||||
|
||||
@@ -34,14 +34,14 @@ class _PdfViewerScreenState extends State<PdfViewerScreen> {
|
||||
void _zoomIn() {
|
||||
setState(() {
|
||||
_zoomLevel = (_zoomLevel * 1.3).clamp(0.8, 5.0);
|
||||
_transformationController.value = Matrix4.identity()..scale(_zoomLevel);
|
||||
_transformationController.value = Matrix4.diagonal3Values(_zoomLevel, _zoomLevel, _zoomLevel);
|
||||
});
|
||||
}
|
||||
|
||||
void _zoomOut() {
|
||||
setState(() {
|
||||
_zoomLevel = (_zoomLevel / 1.3).clamp(0.8, 5.0);
|
||||
_transformationController.value = Matrix4.identity()..scale(_zoomLevel);
|
||||
_transformationController.value = Matrix4.diagonal3Values(_zoomLevel, _zoomLevel, _zoomLevel);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ class _PdfViewerScreenState extends State<PdfViewerScreen> {
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.15),
|
||||
color: Colors.black.withValues(alpha: 0.15),
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 3),
|
||||
),
|
||||
@@ -235,7 +235,7 @@ class _PdfViewerScreenState extends State<PdfViewerScreen> {
|
||||
elevation: 4,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(24)),
|
||||
color: Colors.white.withOpacity(0.92),
|
||||
color: Colors.white.withValues(alpha: 0.92),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 2),
|
||||
child: Column(
|
||||
|
||||
@@ -118,8 +118,8 @@ class FirestoreService {
|
||||
'firstName': firstName,
|
||||
if (lastName != null && lastName.isNotEmpty)
|
||||
'lastName': lastName,
|
||||
if (emailVerified != null) 'emailVerified': emailVerified,
|
||||
if (isAdmin != null) 'isAdmin': isAdmin,
|
||||
'emailVerified': ?emailVerified,
|
||||
'isAdmin': ?isAdmin,
|
||||
};
|
||||
|
||||
if (!doc.exists) {
|
||||
|
||||
+256
-216
File diff suppressed because it is too large
Load Diff
+34
-83
@@ -1,110 +1,61 @@
|
||||
name: oggauergemeindetrommler
|
||||
description: Gemeinde Trommler
|
||||
|
||||
# Private app – never publish to pub.dev.
|
||||
publish_to: 'none'
|
||||
|
||||
# The following line prevents the package from being accidentally published to
|
||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
|
||||
# The following defines the version and build number for your application.
|
||||
# A version number is three numbers separated by dots, like 1.2.43
|
||||
# followed by an optional build number separated by a +.
|
||||
# Both the version and the builder number may be overridden in flutter
|
||||
# build by specifying --build-name and --build-number, respectively.
|
||||
# In Android, build-name is used as versionName while build-number used as versionCode.
|
||||
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
|
||||
# Read more about iOS versioning at
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
# Version + build number (build-name+build-number). Can be overridden with
|
||||
# `flutter build ... --build-name --build-number`.
|
||||
version: 0.0.1
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
# Flutter 3.47.x ships Dart 3.13; keep the constraint in sync with the
|
||||
# Flutter version pinned in the CI workflows (FLUTTER_VERSION).
|
||||
sdk: ^3.11.0
|
||||
flutter: '>=3.47.0'
|
||||
|
||||
# Dependencies specify other packages that your package needs in order to work.
|
||||
# To automatically upgrade your package dependencies to the latest versions
|
||||
# consider running `flutter pub upgrade --major-versions`. Alternatively,
|
||||
# dependencies can be manually updated by changing the version numbers below to
|
||||
# the latest version available on pub.dev. To see which dependencies have newer
|
||||
# versions available, run `flutter pub outdated`.
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
# Firebase (Auth, Firestore, Storage)
|
||||
firebase_core: ^4.15.0
|
||||
firebase_auth: ^6.7.0
|
||||
cloud_firestore: ^6.10.0
|
||||
firebase_storage: ^13.6.0
|
||||
|
||||
# UI / state
|
||||
provider: ^6.1.5
|
||||
cupertino_icons: ^1.0.8
|
||||
cached_network_image: ^3.4.1
|
||||
intl: ^0.20.2
|
||||
|
||||
# Media
|
||||
image_picker: ^1.2.3
|
||||
image: ^4.5.4
|
||||
|
||||
# PDF export & sharing
|
||||
pdf: ^3.11.3
|
||||
printing: ^5.14.3
|
||||
|
||||
# The following adds the Cupertino Icons font to your application.
|
||||
# Use with the CupertinoIcons class for iOS style icons.
|
||||
cupertino_icons: ^1.0.2
|
||||
image_picker: ^1.1.2
|
||||
firebase_core: ^3.4.0
|
||||
firebase_auth: ^5.2.0
|
||||
firebase_storage: ^12.2.0
|
||||
cloud_firestore: ^5.4.0
|
||||
change_app_package_name: ^1.1.0
|
||||
cached_network_image: ^3.2.3
|
||||
image: ^4.0.16
|
||||
pdf: ^3.10.1
|
||||
printing: ^5.13.2
|
||||
pdf_widget_wrapper: ^1.0.4
|
||||
image_cropper: ^8.0.1
|
||||
logging: ^1.1.1
|
||||
provider: ^6.0.5
|
||||
http: ^1.2.0
|
||||
shared_preferences: ^2.2.2
|
||||
# Misc
|
||||
http: ^1.2.2
|
||||
shared_preferences: ^2.5.3
|
||||
url_launcher: ^6.3.1
|
||||
|
||||
# Transitive (via flutter_cache_manager / printing), pinned on purpose:
|
||||
# path_provider_android >= 2.3 is implemented with `jni` and compiles native
|
||||
# code (CMake + NDK). The ARM64 Gitea runner would have to run the x86_64 NDK
|
||||
# toolchain through QEMU, so stay on the pure-Java implementation for now.
|
||||
path_provider_android: '>=2.2.0 <2.3.0'
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^6.0.0
|
||||
|
||||
# The "flutter_lints" package below contains a set of recommended lints to
|
||||
# encourage good coding practices. The lint set provided by the package is
|
||||
# activated in the `analysis_options.yaml` file located at the root of your
|
||||
# package. See that file for information about deactivating specific lint
|
||||
# rules and activating additional ones.
|
||||
flutter_lints: ^4.0.0
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
# The following section is specific to Flutter packages.
|
||||
flutter:
|
||||
|
||||
# The following line ensures that the Material Icons font is
|
||||
# included with your application, so that you can use the icons in
|
||||
# the material Icons class.
|
||||
uses-material-design: true
|
||||
|
||||
assets:
|
||||
- assets/images/
|
||||
|
||||
# An image asset can refer to one or more resolution-specific "variants", see
|
||||
# https://flutter.dev/assets-and-images/#resolution-aware
|
||||
|
||||
# For details regarding adding assets from package dependencies, see
|
||||
# https://flutter.dev/assets-and-images/#from-packages
|
||||
|
||||
# To add custom fonts to your application, add a fonts section here,
|
||||
# in this "flutter" section. Each entry in this list should have a
|
||||
# "family" key with the font family name, and a "fonts" key with a
|
||||
# list giving the asset and other descriptors for the font. For
|
||||
# example:
|
||||
# fonts:
|
||||
# - family: Schyler
|
||||
# fonts:
|
||||
# - asset: fonts/Schyler-Regular.ttf
|
||||
# - asset: fonts/Schyler-Italic.ttf
|
||||
# style: italic
|
||||
# - family: Trajan Pro
|
||||
# fonts:
|
||||
# - asset: fonts/TrajanPro.ttf
|
||||
# - asset: fonts/TrajanPro_Bold.ttf
|
||||
# weight: 700
|
||||
#
|
||||
# For details regarding fonts from package dependencies,
|
||||
# see https://flutter.dev/custom-fonts/#from-packages
|
||||
|
||||
Reference in New Issue
Block a user