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';