diff --git a/.github/workflows/celest.yaml b/.github/workflows/celest.yaml
index 8dbc4f112..a16463ab2 100644
--- a/.github/workflows/celest.yaml
+++ b/.github/workflows/celest.yaml
@@ -79,6 +79,8 @@ jobs:
- name: Get Packages (Example)
working-directory: packages/celest/example
run: flutter pub get
+ - name: Download iOS Platform
+ run: xcodebuild -downloadPlatform iOS
- name: Setup iOS Simulator
run: |
RUNTIME=$(xcrun simctl list runtimes | grep 'iOS 18' | tail -n 1 | cut -d' ' -f 7)
@@ -93,53 +95,47 @@ jobs:
- name: Integration Test (macOS)
working-directory: packages/celest/example
run: dart run $CELEST start --verbose -- flutter test -d macos integration_test
- # TODO: Keeps timing out on Linux. Fails hard on macOS...
- # test_android:
- # needs: [test]
- # runs-on: macos-latest
- # timeout-minutes: 30
- # steps:
- # - name: Git Checkout
- # uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
- # - name: Setup Flutter
- # uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # 2.21.0
- # with:
- # cache: true
- # - name: Get Packages
- # working-directory: apps/cli
- # run: dart pub get
- # - name: Get Packages (Example)
- # working-directory: packages/celest/example
- # run: flutter pub get
- # - name: Start Celest
- # working-directory: packages/celest/example
- # run: dart run $CELEST start --verbose &
- # - name: Build APK
- # working-directory: packages/celest/example
- # run: flutter build apk --debug
- # # - name: Enable KVM
- # # run: |
- # # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
- # # sudo udevadm control --reload-rules
- # # sudo udevadm trigger --name-match=kvm
- # - name: Test (API 31)
- # uses: ReactiveCircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d # 2.33.0
- # with:
- # # Matches `package:jni` compileSdkVersion
- # # https://github.com/dart-lang/native/blob/001910c9f40d637cb25c19bb500fb89cebdf7450/pkgs/jni/android/build.gradle#L57C23-L57C25
- # api-level: 31
- # arch: arm64-v8a
- # working-directory: packages/celest/example
- # script: flutter test -d emulator integration_test
- # - name: Test (API 21)
- # uses: ReactiveCircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d # 2.33.0
- # with:
- # # Minimum supported API level
- # # Should match build.gradle: https://github.com/celest-dev/celest/blob/main/packages/native/storage/android/build.gradle#L49
- # api-level: 21
- # arch: arm64-v8a
- # working-directory: packages/celest/example
- # script: flutter test -d emulator integration_test
+ test_android:
+ needs: [test]
+ runs-on: ubuntu-large
+ timeout-minutes: 30
+ steps:
+ - name: Git Checkout
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
+ - name: Setup Flutter
+ uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # 2.21.0
+ with:
+ cache: true
+ - name: Get Packages
+ working-directory: apps/cli
+ run: dart pub get
+ - name: Get Packages (Example)
+ working-directory: packages/celest/example
+ run: flutter pub get
+ - name: Build APK
+ working-directory: packages/celest/example
+ run: flutter build apk --debug
+ - name: Enable KVM
+ run: |
+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
+ sudo udevadm control --reload-rules
+ sudo udevadm trigger --name-match=kvm
+ - name: Test (API 35)
+ uses: ReactiveCircus/android-emulator-runner@1dcd0090116d15e7c562f8db72807de5e036a4ed # 2.34.0
+ with:
+ # Matches Flutter compileSdkVersion
+ api-level: 35
+ arch: x86_64
+ working-directory: packages/celest/example
+ script: dart run $CELEST start --verbose -- flutter test -d emulator integration_test
+ # - name: Test (API 24)
+ # uses: ReactiveCircus/android-emulator-runner@1dcd0090116d15e7c562f8db72807de5e036a4ed # 2.34.0
+ # with:
+ # # Minimum supported API level
+ # api-level: 24
+ # arch: x86_64
+ # working-directory: packages/celest/example
+ # script: dart run $CELEST start --verbose -- flutter test -d emulator integration_test
test_linux:
needs: [test]
runs-on: ubuntu-latest
diff --git a/packages/celest/CHANGELOG.md b/packages/celest/CHANGELOG.md
index c9f642e0f..b3cad453a 100644
--- a/packages/celest/CHANGELOG.md
+++ b/packages/celest/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+- chore: Update analyzer plugin dependencies
+
## 1.0.6
- refactor: Move `connect` method to `CelestDatabase` class
diff --git a/packages/celest/example/.metadata b/packages/celest/example/.metadata
index eea2802f1..9adde6f0b 100644
--- a/packages/celest/example/.metadata
+++ b/packages/celest/example/.metadata
@@ -4,8 +4,8 @@
# This file should be version controlled and should not be manually edited.
version:
- revision: "67457e669f79e9f8d13d7a68fe09775fefbb79f4"
- channel: "stable"
+ revision: "6c794842101b5805e74774cce9f1fdb49cbcd13c"
+ channel: "beta"
project_type: app
@@ -13,26 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: android
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: ios
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: linux
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: macos
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: web
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
- platform: windows
- create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
- base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4
+ create_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
+ base_revision: 6c794842101b5805e74774cce9f1fdb49cbcd13c
# User provided section
diff --git a/packages/celest/example/android/.gitignore b/packages/celest/example/android/.gitignore
index 37277cde0..be3943c96 100644
--- a/packages/celest/example/android/.gitignore
+++ b/packages/celest/example/android/.gitignore
@@ -8,7 +8,7 @@ GeneratedPluginRegistrant.java
.cxx/
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/packages/celest/example/android/app/build.gradle b/packages/celest/example/android/app/build.gradle
deleted file mode 100644
index 1c7b0c2ff..000000000
--- a/packages/celest/example/android/app/build.gradle
+++ /dev/null
@@ -1,67 +0,0 @@
-plugins {
- id "com.android.application"
- id "kotlin-android"
- id "dev.flutter.flutter-gradle-plugin"
-}
-
-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 "dev.celest.example_app"
- compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- kotlinOptions {
- jvmTarget = '1.8'
- }
-
- 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 "dev.celest.example_app"
- // You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdkVersion flutter.minSdkVersion
- targetSdkVersion flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
- }
- }
-}
-
-flutter {
- source '../..'
-}
-
-dependencies {}
diff --git a/packages/celest/example/android/app/build.gradle.kts b/packages/celest/example/android/app/build.gradle.kts
new file mode 100644
index 000000000..e5f4be644
--- /dev/null
+++ b/packages/celest/example/android/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ id("com.android.application")
+ id("kotlin-android")
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id("dev.flutter.flutter-gradle-plugin")
+}
+
+android {
+ namespace = "dev.celest.example_app"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_11.toString()
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId = "dev.celest.example_app"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ }
+}
+
+flutter {
+ source = "../.."
+}
diff --git a/packages/celest/example/android/app/src/main/AndroidManifest.xml b/packages/celest/example/android/app/src/main/AndroidManifest.xml
index 4b83a1323..cd15e3aaa 100644
--- a/packages/celest/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/celest/example/android/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
+ android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
@@ -30,4 +31,15 @@
android:name="flutterEmbedding"
android:value="2" />
+
+
+
+
+
+
+
diff --git a/packages/celest/example/android/app/src/main/kotlin/dev/celest/example_app/MainActivity.kt b/packages/celest/example/android/app/src/main/kotlin/dev/celest/example_app/MainActivity.kt
index 66aae33a1..6a42a9afa 100644
--- a/packages/celest/example/android/app/src/main/kotlin/dev/celest/example_app/MainActivity.kt
+++ b/packages/celest/example/android/app/src/main/kotlin/dev/celest/example_app/MainActivity.kt
@@ -2,5 +2,4 @@ package dev.celest.example_app
import io.flutter.embedding.android.FlutterActivity
-class MainActivity: FlutterActivity() {
-}
+class MainActivity : FlutterActivity()
diff --git a/packages/celest/example/android/build.gradle b/packages/celest/example/android/build.gradle
deleted file mode 100644
index 0ae299284..000000000
--- a/packages/celest/example/android/build.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-buildscript {
- ext.kotlin_version = '1.8.10'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-rootProject.buildDir = '../build'
-subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
- project.evaluationDependsOn(':app')
-}
-
-tasks.register("clean", Delete) {
- delete rootProject.buildDir
-}
diff --git a/packages/celest/example/android/build.gradle.kts b/packages/celest/example/android/build.gradle.kts
new file mode 100644
index 000000000..dbee657bb
--- /dev/null
+++ b/packages/celest/example/android/build.gradle.kts
@@ -0,0 +1,24 @@
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+val newBuildDir: Directory =
+ rootProject.layout.buildDirectory
+ .dir("../../build")
+ .get()
+rootProject.layout.buildDirectory.value(newBuildDir)
+
+subprojects {
+ val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
+ project.layout.buildDirectory.value(newSubprojectBuildDir)
+}
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean") {
+ delete(rootProject.layout.buildDirectory)
+}
diff --git a/packages/celest/example/android/gradle.properties b/packages/celest/example/android/gradle.properties
index 598d13fee..f018a6181 100644
--- a/packages/celest/example/android/gradle.properties
+++ b/packages/celest/example/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx4G
+org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
diff --git a/packages/celest/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/celest/example/android/gradle/wrapper/gradle-wrapper.properties
index 3c85cfe05..ac3b47926 100644
--- a/packages/celest/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/celest/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -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.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
diff --git a/packages/celest/example/android/settings.gradle b/packages/celest/example/android/settings.gradle
deleted file mode 100644
index 71e011e05..000000000
--- a/packages/celest/example/android/settings.gradle
+++ /dev/null
@@ -1,29 +0,0 @@
-pluginManagement {
- def flutterSdkPath = {
- def properties = new Properties()
- file("local.properties").withInputStream { properties.load(it) }
- def flutterSdkPath = properties.getProperty("flutter.sdk")
- assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
- return flutterSdkPath
- }
- settings.ext.flutterSdkPath = flutterSdkPath()
-
- includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
-
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-
- plugins {
- id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
- }
-}
-
-plugins {
- id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version '8.5.1' apply false
-}
-
-include ":app"
diff --git a/packages/celest/example/android/settings.gradle.kts b/packages/celest/example/android/settings.gradle.kts
new file mode 100644
index 000000000..fb605bc84
--- /dev/null
+++ b/packages/celest/example/android/settings.gradle.kts
@@ -0,0 +1,26 @@
+pluginManagement {
+ val flutterSdkPath =
+ run {
+ val properties = java.util.Properties()
+ file("local.properties").inputStream().use { properties.load(it) }
+ val flutterSdkPath = properties.getProperty("flutter.sdk")
+ require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
+ flutterSdkPath
+ }
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+ id("com.android.application") version "8.9.1" apply false
+ id("org.jetbrains.kotlin.android") version "2.1.0" apply false
+}
+
+include(":app")
diff --git a/packages/celest/example/ios/Flutter/AppFrameworkInfo.plist b/packages/celest/example/ios/Flutter/AppFrameworkInfo.plist
index 7c5696400..1dc6cf765 100644
--- a/packages/celest/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/packages/celest/example/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 12.0
+ 13.0
diff --git a/packages/celest/example/ios/Podfile b/packages/celest/example/ios/Podfile
index ebaf3182a..620e46eba 100644
--- a/packages/celest/example/ios/Podfile
+++ b/packages/celest/example/ios/Podfile
@@ -1,4 +1,5 @@
-platform :ios, '13.0'
+# Uncomment this line to define a global platform for your project
+# platform :ios, '13.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -28,7 +29,6 @@ flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
- use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
diff --git a/packages/celest/example/ios/Podfile.lock b/packages/celest/example/ios/Podfile.lock
index 1f17092b0..a91195f32 100644
--- a/packages/celest/example/ios/Podfile.lock
+++ b/packages/celest/example/ios/Podfile.lock
@@ -1,5 +1,7 @@
PODS:
- Flutter (1.0.0)
+ - integration_test (0.0.1):
+ - Flutter
- native_authentication (0.0.1):
- Flutter
- objective_c (0.0.1):
@@ -7,22 +9,26 @@ PODS:
DEPENDENCIES:
- Flutter (from `Flutter`)
+ - integration_test (from `.symlinks/plugins/integration_test/ios`)
- native_authentication (from `.symlinks/plugins/native_authentication/ios`)
- objective_c (from `.symlinks/plugins/objective_c/ios`)
EXTERNAL SOURCES:
Flutter:
:path: Flutter
+ integration_test:
+ :path: ".symlinks/plugins/integration_test/ios"
native_authentication:
:path: ".symlinks/plugins/native_authentication/ios"
objective_c:
:path: ".symlinks/plugins/objective_c/ios"
SPEC CHECKSUMS:
- Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
+ Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
+ integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
native_authentication: 9584603fb050c3f86d19c53d25a3f4dea200588f
objective_c: 89e720c30d716b036faf9c9684022048eee1eee2
-PODFILE CHECKSUM: ade96bceabe3919b69c16573938e4268fe3a6c9d
+PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e
COCOAPODS: 1.16.2
diff --git a/packages/celest/example/ios/Runner.xcodeproj/project.pbxproj b/packages/celest/example/ios/Runner.xcodeproj/project.pbxproj
index 8127edebb..3b80a9fb3 100644
--- a/packages/celest/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/packages/celest/example/ios/Runner.xcodeproj/project.pbxproj
@@ -9,13 +9,13 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
- 382187685D71EFFA1591C6E2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6005F5A98098079BDF4F3E85 /* Pods_Runner.framework */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 4022F45145CA40EE3D68F8E1 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B2A6A99315EA5329BEFABB3 /* Pods_RunnerTests.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 88232FD1DAE09ECD7F9479B4 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF2D9F31B48F5CF44B1488E7 /* Pods_RunnerTests.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+ CBD5129A5D6B4181C1D2F166 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD8B871E07719EFB30637894 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -42,19 +42,17 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 13EFD79FCC354A923214F4F7 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
- 155347D1478AD5776DA3E51B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ 1AFBAA796F7F47E8EB1F8C69 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 41DFAFC522D601104BF8B4BD /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
- 5A9418D1D94F7B9CEDAA8141 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
- 5B2A6A99315EA5329BEFABB3 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 6005F5A98098079BDF4F3E85 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 652F51366753C66EBE5D6513 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 7385D7FDC119FD9F152D6689 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ 751329C25DCB2A06F4216827 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
@@ -63,57 +61,59 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 99EA01F6AA172445DF40C6D0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
- BE68533C68821515DD5FF872 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
+ AD8B871E07719EFB30637894 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C0F8ACB914D68D27D8D483D3 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ DF2D9F31B48F5CF44B1488E7 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ E683AC74A3E68664ED472353 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
+ 26173DEA1A50AC864F29287F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 382187685D71EFFA1591C6E2 /* Pods_Runner.framework in Frameworks */,
+ 88232FD1DAE09ECD7F9479B4 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- EDB3A84D9D9E7B92BC885C4F /* Frameworks */ = {
+ 97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 4022F45145CA40EE3D68F8E1 /* Pods_RunnerTests.framework in Frameworks */,
+ CBD5129A5D6B4181C1D2F166 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 1AAEAF4BF3C8F60E80C12ED5 /* Pods */ = {
+ 331C8082294A63A400263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
- 652F51366753C66EBE5D6513 /* Pods-Runner.debug.xcconfig */,
- 99EA01F6AA172445DF40C6D0 /* Pods-Runner.release.xcconfig */,
- 41DFAFC522D601104BF8B4BD /* Pods-Runner.profile.xcconfig */,
- 155347D1478AD5776DA3E51B /* Pods-RunnerTests.debug.xcconfig */,
- 5A9418D1D94F7B9CEDAA8141 /* Pods-RunnerTests.release.xcconfig */,
- BE68533C68821515DD5FF872 /* Pods-RunnerTests.profile.xcconfig */,
+ 331C807B294A618700263BE5 /* RunnerTests.swift */,
);
- name = Pods;
- path = Pods;
+ path = RunnerTests;
sourceTree = "";
};
- 331C8082294A63A400263BE5 /* RunnerTests */ = {
+ 45DE35854BE8D3AB2B9B5B2E /* Pods */ = {
isa = PBXGroup;
children = (
- 331C807B294A618700263BE5 /* RunnerTests.swift */,
+ 1AFBAA796F7F47E8EB1F8C69 /* Pods-Runner.debug.xcconfig */,
+ 13EFD79FCC354A923214F4F7 /* Pods-Runner.release.xcconfig */,
+ 751329C25DCB2A06F4216827 /* Pods-Runner.profile.xcconfig */,
+ C0F8ACB914D68D27D8D483D3 /* Pods-RunnerTests.debug.xcconfig */,
+ E683AC74A3E68664ED472353 /* Pods-RunnerTests.release.xcconfig */,
+ 7385D7FDC119FD9F152D6689 /* Pods-RunnerTests.profile.xcconfig */,
);
- path = RunnerTests;
+ name = Pods;
+ path = Pods;
sourceTree = "";
};
- 6C1AE2831F24D49CE111B88F /* Frameworks */ = {
+ 787BBAAC2A08D54FB3DD530C /* Frameworks */ = {
isa = PBXGroup;
children = (
- 6005F5A98098079BDF4F3E85 /* Pods_Runner.framework */,
- 5B2A6A99315EA5329BEFABB3 /* Pods_RunnerTests.framework */,
+ AD8B871E07719EFB30637894 /* Pods_Runner.framework */,
+ DF2D9F31B48F5CF44B1488E7 /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -136,8 +136,8 @@
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
- 1AAEAF4BF3C8F60E80C12ED5 /* Pods */,
- 6C1AE2831F24D49CE111B88F /* Frameworks */,
+ 45DE35854BE8D3AB2B9B5B2E /* Pods */,
+ 787BBAAC2A08D54FB3DD530C /* Frameworks */,
);
sourceTree = "";
};
@@ -172,10 +172,10 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
- 6F9D29FDE076053EBE879B1D /* [CP] Check Pods Manifest.lock */,
+ F98FA22EC1F8D4E0922EAAA1 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */,
- EDB3A84D9D9E7B92BC885C4F /* Frameworks */,
+ 26173DEA1A50AC864F29287F /* Frameworks */,
);
buildRules = (
);
@@ -191,14 +191,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 1AF4ED20C80DA4BF725AA3DC /* [CP] Check Pods Manifest.lock */,
+ 68D68B853EC48F4599DE7366 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- A9E2A3D94C89CE39D7500B75 /* [CP] Embed Pods Frameworks */,
+ 13FACAE5B54CF31A3B21C3C8 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -270,26 +270,21 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 1AF4ED20C80DA4BF725AA3DC /* [CP] Check Pods Manifest.lock */ = {
+ 13FACAE5B54CF31A3B21C3C8 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
+ name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
@@ -308,7 +303,7 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- 6F9D29FDE076053EBE879B1D /* [CP] Check Pods Manifest.lock */ = {
+ 68D68B853EC48F4599DE7366 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -323,7 +318,7 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -345,21 +340,26 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- A9E2A3D94C89CE39D7500B75 /* [CP] Embed Pods Frameworks */ = {
+ F98FA22EC1F8D4E0922EAAA1 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "[CP] Embed Pods Frameworks";
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -416,6 +416,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -445,6 +446,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -453,7 +455,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -469,7 +471,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 3N6FCLHNUW;
+ DEVELOPMENT_TEAM = 9T6BMLWR84;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -486,7 +488,7 @@
};
331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 155347D1478AD5776DA3E51B /* Pods-RunnerTests.debug.xcconfig */;
+ baseConfigurationReference = C0F8ACB914D68D27D8D483D3 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -504,7 +506,7 @@
};
331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 5A9418D1D94F7B9CEDAA8141 /* Pods-RunnerTests.release.xcconfig */;
+ baseConfigurationReference = E683AC74A3E68664ED472353 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -520,7 +522,7 @@
};
331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = BE68533C68821515DD5FF872 /* Pods-RunnerTests.profile.xcconfig */;
+ baseConfigurationReference = 7385D7FDC119FD9F152D6689 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -538,6 +540,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -567,6 +570,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -581,7 +585,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -593,6 +597,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -622,6 +627,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -630,7 +636,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -648,7 +654,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 3N6FCLHNUW;
+ DEVELOPMENT_TEAM = 9T6BMLWR84;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -671,7 +677,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 3N6FCLHNUW;
+ DEVELOPMENT_TEAM = 9T6BMLWR84;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
diff --git a/packages/celest/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/celest/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 15cada483..e3773d42e 100644
--- a/packages/celest/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/packages/celest/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -26,6 +26,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES">
+#ifdef GDK_WINDOWING_X11
+#include
+#endif
+
+#include "flutter/generated_plugin_registrant.h"
+
+struct _MyApplication {
+ GtkApplication parent_instance;
+ char** dart_entrypoint_arguments;
+};
+
+G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
+
+// Called when first Flutter frame received.
+static void first_frame_cb(MyApplication* self, FlView *view)
+{
+ gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view)));
+}
+
+// Implements GApplication::activate.
+static void my_application_activate(GApplication* application) {
+ MyApplication* self = MY_APPLICATION(application);
+ GtkWindow* window =
+ GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
+
+ // Use a header bar when running in GNOME as this is the common style used
+ // by applications and is the setup most users will be using (e.g. Ubuntu
+ // desktop).
+ // If running on X and not using GNOME then just use a traditional title bar
+ // in case the window manager does more exotic layout, e.g. tiling.
+ // If running on Wayland assume the header bar will work (may need changing
+ // if future cases occur).
+ gboolean use_header_bar = TRUE;
+#ifdef GDK_WINDOWING_X11
+ GdkScreen* screen = gtk_window_get_screen(window);
+ if (GDK_IS_X11_SCREEN(screen)) {
+ const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
+ if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
+ use_header_bar = FALSE;
+ }
+ }
+#endif
+ if (use_header_bar) {
+ GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
+ gtk_widget_show(GTK_WIDGET(header_bar));
+ gtk_header_bar_set_title(header_bar, "example_app");
+ gtk_header_bar_set_show_close_button(header_bar, TRUE);
+ gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
+ } else {
+ gtk_window_set_title(window, "example_app");
+ }
+
+ gtk_window_set_default_size(window, 1280, 720);
+
+ g_autoptr(FlDartProject) project = fl_dart_project_new();
+ fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
+
+ FlView* view = fl_view_new(project);
+ GdkRGBA background_color;
+ // Background defaults to black, override it here if necessary, e.g. #00000000 for transparent.
+ gdk_rgba_parse(&background_color, "#000000");
+ fl_view_set_background_color(view, &background_color);
+ gtk_widget_show(GTK_WIDGET(view));
+ gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
+
+ // Show the window when Flutter renders.
+ // Requires the view to be realized so we can start rendering.
+ g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), self);
+ gtk_widget_realize(GTK_WIDGET(view));
+
+ fl_register_plugins(FL_PLUGIN_REGISTRY(view));
+
+ gtk_widget_grab_focus(GTK_WIDGET(view));
+}
+
+// Implements GApplication::local_command_line.
+static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
+ MyApplication* self = MY_APPLICATION(application);
+ // Strip out the first argument as it is the binary name.
+ self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
+
+ g_autoptr(GError) error = nullptr;
+ if (!g_application_register(application, nullptr, &error)) {
+ g_warning("Failed to register: %s", error->message);
+ *exit_status = 1;
+ return TRUE;
+ }
+
+ g_application_activate(application);
+ *exit_status = 0;
+
+ return TRUE;
+}
+
+// Implements GApplication::startup.
+static void my_application_startup(GApplication* application) {
+ //MyApplication* self = MY_APPLICATION(object);
+
+ // Perform any actions required at application startup.
+
+ G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
+}
+
+// Implements GApplication::shutdown.
+static void my_application_shutdown(GApplication* application) {
+ //MyApplication* self = MY_APPLICATION(object);
+
+ // Perform any actions required at application shutdown.
+
+ G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
+}
+
+// Implements GObject::dispose.
+static void my_application_dispose(GObject* object) {
+ MyApplication* self = MY_APPLICATION(object);
+ g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
+ G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
+}
+
+static void my_application_class_init(MyApplicationClass* klass) {
+ G_APPLICATION_CLASS(klass)->activate = my_application_activate;
+ G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
+ G_APPLICATION_CLASS(klass)->startup = my_application_startup;
+ G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
+ G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
+}
+
+static void my_application_init(MyApplication* self) {}
+
+MyApplication* my_application_new() {
+ // Set the program name to the application ID, which helps various systems
+ // like GTK and desktop environments map this running application to its
+ // corresponding .desktop file. This ensures better integration by allowing
+ // the application to be recognized beyond its binary name.
+ g_set_prgname(APPLICATION_ID);
+
+ return MY_APPLICATION(g_object_new(my_application_get_type(),
+ "application-id", APPLICATION_ID,
+ "flags", G_APPLICATION_NON_UNIQUE,
+ nullptr));
+}
diff --git a/packages/celest/example/linux/runner/my_application.h b/packages/celest/example/linux/runner/my_application.h
new file mode 100644
index 000000000..72271d5e4
--- /dev/null
+++ b/packages/celest/example/linux/runner/my_application.h
@@ -0,0 +1,18 @@
+#ifndef FLUTTER_MY_APPLICATION_H_
+#define FLUTTER_MY_APPLICATION_H_
+
+#include
+
+G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
+ GtkApplication)
+
+/**
+ * my_application_new:
+ *
+ * Creates a new Flutter-based application.
+ *
+ * Returns: a new #MyApplication.
+ */
+MyApplication* my_application_new();
+
+#endif // FLUTTER_MY_APPLICATION_H_
diff --git a/packages/celest/example/macos/Podfile b/packages/celest/example/macos/Podfile
index b52666a10..ff5ddb3b8 100644
--- a/packages/celest/example/macos/Podfile
+++ b/packages/celest/example/macos/Podfile
@@ -28,7 +28,6 @@ flutter_macos_podfile_setup
target 'Runner' do
use_frameworks!
- use_modular_headers!
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
diff --git a/packages/celest/example/macos/Podfile.lock b/packages/celest/example/macos/Podfile.lock
index 7ad100e75..58c4afde4 100644
--- a/packages/celest/example/macos/Podfile.lock
+++ b/packages/celest/example/macos/Podfile.lock
@@ -19,10 +19,10 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/objective_c/macos
SPEC CHECKSUMS:
- FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
+ FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
native_authentication: e98f968601d32af65f26cab7ca987e3f369567b5
objective_c: ec13431e45ba099cb734eb2829a5c1cd37986cba
-PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3
+PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009
COCOAPODS: 1.16.2
diff --git a/packages/celest/example/macos/Runner.xcodeproj/project.pbxproj b/packages/celest/example/macos/Runner.xcodeproj/project.pbxproj
index b82b79e45..81e3c9985 100644
--- a/packages/celest/example/macos/Runner.xcodeproj/project.pbxproj
+++ b/packages/celest/example/macos/Runner.xcodeproj/project.pbxproj
@@ -27,8 +27,8 @@
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
- 39FF6B64195BF230DE8FC4D6 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A327F97CCE0F5CF730A9FB2 /* Pods_Runner.framework */; };
- 971BA6C1F72661A41AF2B514 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFEEEB6915DE7D3151DD4082 /* Pods_RunnerTests.framework */; };
+ 59EBEB04E2AB68B7D0C32D4C /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B0CF2D5697566B52024F50E /* Pods_RunnerTests.framework */; };
+ A3EEE5522074155D7650F26B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F34970DD1203ACE2C8E216D9 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -62,6 +62,7 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 216002F37D69426917ECE063 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
@@ -78,16 +79,15 @@
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; };
- 474B68257DCA9153CF6B57FC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
- 4B0D5799B83145E7E84F8789 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ 3C665CDA60F62935E9DA8F17 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ 47BA6FC002EBBF3343A94DB8 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 75736F94F0431A42E091BE54 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
- 7E7B0683D22F9CDD815AB9D0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
- 95AD79BCE84BCD2B41E58C0E /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 7B0CF2D5697566B52024F50E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
- 9A327F97CCE0F5CF730A9FB2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- ADD2E19944CD951E95CB3C9F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
- DE6A1D19510ED15464C7432F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
- DFEEEB6915DE7D3151DD4082 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C97B8C05A55B41A89D72B3D6 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ EADA74D47C9798139650F13A /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
+ F34970DD1203ACE2C8E216D9 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -95,7 +95,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 971BA6C1F72661A41AF2B514 /* Pods_RunnerTests.framework in Frameworks */,
+ 59EBEB04E2AB68B7D0C32D4C /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -103,26 +103,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 39FF6B64195BF230DE8FC4D6 /* Pods_Runner.framework in Frameworks */,
+ A3EEE5522074155D7650F26B /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 289674A443DF37F3D4A78B81 /* Pods */ = {
- isa = PBXGroup;
- children = (
- 95AD79BCE84BCD2B41E58C0E /* Pods-Runner.debug.xcconfig */,
- 7E7B0683D22F9CDD815AB9D0 /* Pods-Runner.release.xcconfig */,
- 4B0D5799B83145E7E84F8789 /* Pods-Runner.profile.xcconfig */,
- DE6A1D19510ED15464C7432F /* Pods-RunnerTests.debug.xcconfig */,
- ADD2E19944CD951E95CB3C9F /* Pods-RunnerTests.release.xcconfig */,
- 474B68257DCA9153CF6B57FC /* Pods-RunnerTests.profile.xcconfig */,
- );
- path = Pods;
- sourceTree = "";
- };
331C80D6294CF71000263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
@@ -150,7 +137,7 @@
331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
- 289674A443DF37F3D4A78B81 /* Pods */,
+ 67E5F8E744598B635E330608 /* Pods */,
);
sourceTree = "";
};
@@ -198,11 +185,25 @@
path = Runner;
sourceTree = "";
};
+ 67E5F8E744598B635E330608 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 47BA6FC002EBBF3343A94DB8 /* Pods-Runner.debug.xcconfig */,
+ C97B8C05A55B41A89D72B3D6 /* Pods-Runner.release.xcconfig */,
+ 216002F37D69426917ECE063 /* Pods-Runner.profile.xcconfig */,
+ 3C665CDA60F62935E9DA8F17 /* Pods-RunnerTests.debug.xcconfig */,
+ 75736F94F0431A42E091BE54 /* Pods-RunnerTests.release.xcconfig */,
+ EADA74D47C9798139650F13A /* Pods-RunnerTests.profile.xcconfig */,
+ );
+ name = Pods;
+ path = Pods;
+ sourceTree = "";
+ };
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 9A327F97CCE0F5CF730A9FB2 /* Pods_Runner.framework */,
- DFEEEB6915DE7D3151DD4082 /* Pods_RunnerTests.framework */,
+ F34970DD1203ACE2C8E216D9 /* Pods_Runner.framework */,
+ 7B0CF2D5697566B52024F50E /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -214,7 +215,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
- 0471FD614FFEC4B5C7108C05 /* [CP] Check Pods Manifest.lock */,
+ D274A4E42E0B83597735BA50 /* [CP] Check Pods Manifest.lock */,
331C80D1294CF70F00263BE5 /* Sources */,
331C80D2294CF70F00263BE5 /* Frameworks */,
331C80D3294CF70F00263BE5 /* Resources */,
@@ -233,13 +234,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 1CBF37EB599BD09FD86CBFA2 /* [CP] Check Pods Manifest.lock */,
+ 2B75511502802A86BA20A612 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
- BC4961C7DDD5936EC9A7622D /* [CP] Embed Pods Frameworks */,
+ 9A07E36F3A774EF39C2337D5 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -257,6 +258,7 @@
33CC10E52044A3C60003C045 /* Project object */ = {
isa = PBXProject;
attributes = {
+ BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
@@ -321,29 +323,7 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 0471FD614FFEC4B5C7108C05 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 1CBF37EB599BD09FD86CBFA2 /* [CP] Check Pods Manifest.lock */ = {
+ 2B75511502802A86BA20A612 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -403,7 +383,7 @@
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
- BC4961C7DDD5936EC9A7622D /* [CP] Embed Pods Frameworks */ = {
+ 9A07E36F3A774EF39C2337D5 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -420,6 +400,28 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
+ D274A4E42E0B83597735BA50 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -471,7 +473,7 @@
/* Begin XCBuildConfiguration section */
331C80DB294CF71000263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = DE6A1D19510ED15464C7432F /* Pods-RunnerTests.debug.xcconfig */;
+ baseConfigurationReference = 3C665CDA60F62935E9DA8F17 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
@@ -486,7 +488,7 @@
};
331C80DC294CF71000263BE5 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = ADD2E19944CD951E95CB3C9F /* Pods-RunnerTests.release.xcconfig */;
+ baseConfigurationReference = 75736F94F0431A42E091BE54 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
@@ -501,7 +503,7 @@
};
331C80DD294CF71000263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 474B68257DCA9153CF6B57FC /* Pods-RunnerTests.profile.xcconfig */;
+ baseConfigurationReference = EADA74D47C9798139650F13A /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
@@ -519,6 +521,7 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -542,9 +545,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -552,7 +557,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@@ -574,7 +579,6 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
@@ -593,6 +597,7 @@
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -616,9 +621,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -632,7 +639,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
@@ -646,6 +653,7 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -669,9 +677,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -679,7 +689,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@@ -701,7 +711,6 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -722,7 +731,6 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
- MACOSX_DEPLOYMENT_TARGET = 10.15;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
diff --git a/packages/celest/example/macos/Runner/Configs/AppInfo.xcconfig b/packages/celest/example/macos/Runner/Configs/AppInfo.xcconfig
index 412d402c6..9c7987e5f 100644
--- a/packages/celest/example/macos/Runner/Configs/AppInfo.xcconfig
+++ b/packages/celest/example/macos/Runner/Configs/AppInfo.xcconfig
@@ -11,4 +11,4 @@ PRODUCT_NAME = example_app
PRODUCT_BUNDLE_IDENTIFIER = dev.celest.exampleApp
// The copyright displayed in application information
-PRODUCT_COPYRIGHT = Copyright © 2024 dev.celest. All rights reserved.
+PRODUCT_COPYRIGHT = Copyright © 2025 dev.celest. All rights reserved.
diff --git a/packages/celest/example/macos/Runner/DebugProfile.entitlements b/packages/celest/example/macos/Runner/DebugProfile.entitlements
index 3ba6c1266..dddb8a30c 100644
--- a/packages/celest/example/macos/Runner/DebugProfile.entitlements
+++ b/packages/celest/example/macos/Runner/DebugProfile.entitlements
@@ -6,8 +6,6 @@
com.apple.security.cs.allow-jit
- com.apple.security.network.client
-
com.apple.security.network.server
diff --git a/packages/celest/example/macos/Runner/Release.entitlements b/packages/celest/example/macos/Runner/Release.entitlements
index 7a2230dc3..852fa1a47 100644
--- a/packages/celest/example/macos/Runner/Release.entitlements
+++ b/packages/celest/example/macos/Runner/Release.entitlements
@@ -4,9 +4,5 @@
com.apple.security.app-sandbox
- com.apple.security.network.client
-
- com.apple.security.network.server
-
diff --git a/packages/celest/example/macos/RunnerTests/RunnerTests.swift b/packages/celest/example/macos/RunnerTests/RunnerTests.swift
index 5418c9f53..61f3bd1fc 100644
--- a/packages/celest/example/macos/RunnerTests/RunnerTests.swift
+++ b/packages/celest/example/macos/RunnerTests/RunnerTests.swift
@@ -1,5 +1,5 @@
-import FlutterMacOS
import Cocoa
+import FlutterMacOS
import XCTest
class RunnerTests: XCTestCase {
diff --git a/packages/celest/example/windows/runner/Runner.rc b/packages/celest/example/windows/runner/Runner.rc
index 9544e76fc..ca093b8d7 100644
--- a/packages/celest/example/windows/runner/Runner.rc
+++ b/packages/celest/example/windows/runner/Runner.rc
@@ -93,7 +93,7 @@ BEGIN
VALUE "FileDescription", "example_app" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0"
VALUE "InternalName", "example_app" "\0"
- VALUE "LegalCopyright", "Copyright (C) 2024 dev.celest. All rights reserved." "\0"
+ VALUE "LegalCopyright", "Copyright (C) 2025 dev.celest. All rights reserved." "\0"
VALUE "OriginalFilename", "example_app.exe" "\0"
VALUE "ProductName", "example_app" "\0"
VALUE "ProductVersion", VERSION_AS_STRING "\0"
diff --git a/packages/celest/example/windows/runner/runner.exe.manifest b/packages/celest/example/windows/runner/runner.exe.manifest
index a42ea7687..153653e8d 100644
--- a/packages/celest/example/windows/runner/runner.exe.manifest
+++ b/packages/celest/example/windows/runner/runner.exe.manifest
@@ -9,12 +9,6 @@
-
-
-
-
-
-
diff --git a/packages/celest/example/windows/runner/utils.cpp b/packages/celest/example/windows/runner/utils.cpp
index b2b08734d..3a0b46511 100644
--- a/packages/celest/example/windows/runner/utils.cpp
+++ b/packages/celest/example/windows/runner/utils.cpp
@@ -45,13 +45,13 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
if (utf16_string == nullptr) {
return std::string();
}
- int target_length = ::WideCharToMultiByte(
+ unsigned int target_length = ::WideCharToMultiByte(
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
-1, nullptr, 0, nullptr, nullptr)
-1; // remove the trailing null character
int input_length = (int)wcslen(utf16_string);
std::string utf8_string;
- if (target_length <= 0 || target_length > utf8_string.max_size()) {
+ if (target_length == 0 || target_length > utf8_string.max_size()) {
return utf8_string;
}
utf8_string.resize(target_length);
diff --git a/packages/celest/tools/analyzer_plugin/lib/celest_analyzer_plugin.dart b/packages/celest/tools/analyzer_plugin/lib/celest_analyzer_plugin.dart
index 6f658202b..4456d261c 100644
--- a/packages/celest/tools/analyzer_plugin/lib/celest_analyzer_plugin.dart
+++ b/packages/celest/tools/analyzer_plugin/lib/celest_analyzer_plugin.dart
@@ -8,7 +8,7 @@ import 'package:analyzer/dart/analysis/uri_converter.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/constant/value.dart';
-import 'package:analyzer/dart/element/element2.dart';
+import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
import 'package:analyzer/source/source_range.dart';
@@ -256,7 +256,7 @@ final class CelestNavigationContributor implements NavigationContributor {
_logger.info('computeNavigation Request: ${request.toDebugString()}');
final offset = request.offset;
final length = request.length ?? 0;
- final targetNode = NodeLocator(
+ final targetNode = NodeLocator2(
offset,
offset + length,
).searchWithin(request.result.unit);
@@ -269,7 +269,7 @@ final class CelestNavigationContributor implements NavigationContributor {
'(${targetNode.runtimeType})',
);
final libraryPath =
- request.result.libraryElement2.firstFragment.source.fullName;
+ request.result.libraryElement.firstFragment.source.fullName;
_logger.info('computeNavigation Library path: $libraryPath');
final visitor = NavigationVisitor(
collector,
@@ -304,12 +304,12 @@ final class NavigationVisitor extends RecursiveAstVisitor {
}
final element = methodInvocation.methodName.element;
- if (element is! MethodElement2) {
+ if (element is! MethodElement) {
_logger.severe('Unexpected element: $element (${element.runtimeType})');
return;
}
_logger.info('Element: $element (${element.runtimeType})');
- final cloudFunctionAnnotation = element.metadata2.annotations
+ final cloudFunctionAnnotation = element.metadata.annotations
.firstWhereOrNull((annotation) => annotation.isCloudFunction);
if (cloudFunctionAnnotation == null) {
_logger.warning('CloudFunction annotation not found');
diff --git a/packages/celest/tools/analyzer_plugin/lib/src/analyzer_helpers.dart b/packages/celest/tools/analyzer_plugin/lib/src/analyzer_helpers.dart
index 7ceebd553..4927cf61d 100644
--- a/packages/celest/tools/analyzer_plugin/lib/src/analyzer_helpers.dart
+++ b/packages/celest/tools/analyzer_plugin/lib/src/analyzer_helpers.dart
@@ -1,10 +1,10 @@
import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/element/element2.dart';
+import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/source/source_range.dart';
-extension ElementHelper on Element2 {
+extension ElementHelper on Element {
/// Whether the source of this element is a package from the Celest SDK.
- bool get isPackageCelest => switch (library2?.firstFragment.source.uri) {
+ bool get isPackageCelest => switch (library?.firstFragment.source.uri) {
Uri(scheme: 'package', pathSegments: [final packageName, ...]) =>
packageName.startsWith('celest') && packageName != 'celest_backend',
_ => false,
@@ -14,9 +14,9 @@ extension ElementHelper on Element2 {
extension AnnotationHelper on ElementAnnotation {
/// Whether the element targeted by this annotation is the `CloudFunction`
/// class from `package:celest`.
- bool get isCloudFunction => switch (element2) {
- ConstructorElement2(enclosingElement2: final classElement) =>
- classElement.isPackageCelest && classElement.name3 == 'CloudFunction',
+ bool get isCloudFunction => switch (element) {
+ ConstructorElement(enclosingElement: final classElement) =>
+ classElement.isPackageCelest && classElement.name == 'CloudFunction',
_ => false,
};
}
diff --git a/packages/celest/tools/analyzer_plugin/pubspec.yaml b/packages/celest/tools/analyzer_plugin/pubspec.yaml
index 52518b9e4..df65ec272 100644
--- a/packages/celest/tools/analyzer_plugin/pubspec.yaml
+++ b/packages/celest/tools/analyzer_plugin/pubspec.yaml
@@ -6,7 +6,7 @@ environment:
sdk: ^3.5.0
dependencies:
- analyzer: ^7.4.0
+ analyzer: ^8.0.0
analyzer_plugin: ^0.13.0
collection: ^1.18.0
logging: ^1.2.0
@@ -18,4 +18,4 @@ dependencies:
dev_dependencies:
test: any
- lints: ^5.0.0
+ lints: ^6.0.0
diff --git a/packages/celest_cloud/lib/src/util/operations.dart b/packages/celest_cloud/lib/src/util/operations.dart
index 5c801ce28..9b0144395 100644
--- a/packages/celest_cloud/lib/src/util/operations.dart
+++ b/packages/celest_cloud/lib/src/util/operations.dart
@@ -4,7 +4,7 @@ import 'package:celest_cloud/celest_cloud.dart';
import 'package:celest_cloud/src/cloud/operations/operations_protocol.dart';
import 'package:celest_cloud/src/proto/google/longrunning/operations.pb.dart';
import 'package:celest_cloud/src/proto/google/rpc/status.pb.dart';
-import 'package:grpc/grpc.dart';
+import 'package:grpc/grpc.dart' hide Any; // ignore: undefined_hidden_name
import 'package:logging/logging.dart';
import 'package:protobuf/protobuf.dart';