From 9ff9ba10e9b782a3685461ec465146198220ca19 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Fri, 8 May 2026 10:00:03 +0100 Subject: [PATCH 1/7] feat: Add support for SPM --- .fvmrc | 2 +- ios/.gitignore | 2 +- ios/Assets/.gitkeep | 0 ios/Resources/PrivacyInfo.xcprivacy | 14 ----------- ios/flutter_security_suite.podspec | 18 +++---------- ios/flutter_security_suite/Package.swift | 25 +++++++++++++++++++ .../DebuggerChecker.swift | 0 .../FlutterSecuritySuitePlugin.swift | 0 .../JailbreakChecker.swift | 0 .../ReverseEngineerChecker.swift | 0 .../SecuritySuiteApi.g.swift | 0 .../SecuritySuiteImpl.swift | 0 .../ServiceLocator.swift | 0 .../SimulatorChecker.swift | 0 pigeons/security_suite_messages.dart | 2 +- pubspec.yaml | 2 +- 16 files changed, 33 insertions(+), 32 deletions(-) delete mode 100644 ios/Assets/.gitkeep delete mode 100644 ios/Resources/PrivacyInfo.xcprivacy create mode 100644 ios/flutter_security_suite/Package.swift rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/DebuggerChecker.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/FlutterSecuritySuitePlugin.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/JailbreakChecker.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/ReverseEngineerChecker.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/SecuritySuiteApi.g.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/SecuritySuiteImpl.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/ServiceLocator.swift (100%) rename ios/{Classes => flutter_security_suite/Sources/flutter_security_suite}/SimulatorChecker.swift (100%) diff --git a/.fvmrc b/.fvmrc index e8b4151..d80cf57 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.35.7" + "flutter": "3.41.9" } \ No newline at end of file diff --git a/ios/.gitignore b/ios/.gitignore index 034771f..0c88507 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -35,4 +35,4 @@ Icon? /Flutter/Generated.xcconfig /Flutter/ephemeral/ -/Flutter/flutter_export_environment.sh +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/ios/Assets/.gitkeep b/ios/Assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/ios/Resources/PrivacyInfo.xcprivacy b/ios/Resources/PrivacyInfo.xcprivacy deleted file mode 100644 index a34b7e2..0000000 --- a/ios/Resources/PrivacyInfo.xcprivacy +++ /dev/null @@ -1,14 +0,0 @@ - - - - - NSPrivacyTrackingDomains - - NSPrivacyAccessedAPITypes - - NSPrivacyCollectedDataTypes - - NSPrivacyTracking - - - diff --git a/ios/flutter_security_suite.podspec b/ios/flutter_security_suite.podspec index 20becf0..36b6e0f 100644 --- a/ios/flutter_security_suite.podspec +++ b/ios/flutter_security_suite.podspec @@ -1,29 +1,19 @@ -# -# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint flutter_security_suite.podspec` to validate before publishing. -# Pod::Spec.new do |s| s.name = 'flutter_security_suite' s.version = '0.0.1' - s.summary = 'A new Flutter plugin project.' + s.summary = 'Security utilities for Flutter apps.' s.description = <<-DESC -A new Flutter plugin project. +Security utilities for Flutter apps. DESC s.homepage = 'http://example.com' s.license = { :file => '../LICENSE' } - s.author = { 'Your Company' => 'email@example.com' } + s.author = { 'Apadmi Ltd.' => 'tomh@apadmi.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'flutter_security_suite/Sources/flutter_security_suite/**/*.swift' s.dependency 'Flutter' s.platform = :ios, '12.0' # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } s.swift_version = '5.0' - - # If your plugin requires a privacy manifest, for example if it uses any - # required reason APIs, update the PrivacyInfo.xcprivacy file to describe your - # plugin's privacy impact, and then uncomment this line. For more information, - # see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files - # s.resource_bundles = {'flutter_security_suite_privacy' => ['Resources/PrivacyInfo.xcprivacy']} end diff --git a/ios/flutter_security_suite/Package.swift b/ios/flutter_security_suite/Package.swift new file mode 100644 index 0000000..f89d56a --- /dev/null +++ b/ios/flutter_security_suite/Package.swift @@ -0,0 +1,25 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "flutter_security_suite", + platforms: [ + .iOS("12.0") + ], + products: [ + .library(name: "flutter-security-suite", targets: ["flutter_security_suite"]) + ], + dependencies: [ + .package(name: "FlutterFramework", path: "../FlutterFramework") + ], + targets: [ + .target( + name: "flutter_security_suite", + dependencies: [ + .product(name: "FlutterFramework", package: "FlutterFramework") + ] + ) + ] +) diff --git a/ios/Classes/DebuggerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift similarity index 100% rename from ios/Classes/DebuggerChecker.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift diff --git a/ios/Classes/FlutterSecuritySuitePlugin.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/FlutterSecuritySuitePlugin.swift similarity index 100% rename from ios/Classes/FlutterSecuritySuitePlugin.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/FlutterSecuritySuitePlugin.swift diff --git a/ios/Classes/JailbreakChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift similarity index 100% rename from ios/Classes/JailbreakChecker.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift diff --git a/ios/Classes/ReverseEngineerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift similarity index 100% rename from ios/Classes/ReverseEngineerChecker.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift diff --git a/ios/Classes/SecuritySuiteApi.g.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/SecuritySuiteApi.g.swift similarity index 100% rename from ios/Classes/SecuritySuiteApi.g.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/SecuritySuiteApi.g.swift diff --git a/ios/Classes/SecuritySuiteImpl.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/SecuritySuiteImpl.swift similarity index 100% rename from ios/Classes/SecuritySuiteImpl.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/SecuritySuiteImpl.swift diff --git a/ios/Classes/ServiceLocator.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/ServiceLocator.swift similarity index 100% rename from ios/Classes/ServiceLocator.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/ServiceLocator.swift diff --git a/ios/Classes/SimulatorChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/SimulatorChecker.swift similarity index 100% rename from ios/Classes/SimulatorChecker.swift rename to ios/flutter_security_suite/Sources/flutter_security_suite/SimulatorChecker.swift diff --git a/pigeons/security_suite_messages.dart b/pigeons/security_suite_messages.dart index 650149d..1bd3060 100644 --- a/pigeons/security_suite_messages.dart +++ b/pigeons/security_suite_messages.dart @@ -8,7 +8,7 @@ import 'package:pigeon/pigeon.dart'; kotlinOut: "android/src/main/kotlin/com/apadmi/flutter_security_suite/SecuritySuiteApi.g.kt", kotlinOptions: KotlinOptions(errorClassName: "FlutterSecuritySuiteError"), - swiftOut: "ios/Classes/SecuritySuiteApi.g.swift", + swiftOut: "ios/flutter_security_suite/Sources/flutter_security_suite/SecuritySuiteApi.g.swift", swiftOptions: SwiftOptions(errorClassName: "SecuritySuiteError"), ), ) diff --git a/pubspec.yaml b/pubspec.yaml index 3822681..fd806b6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ homepage: environment: sdk: ^3.7.2 - flutter: '>=3.3.0' + flutter: '>=3.41.0' dependencies: flutter: From 719f0e61b89147e63606dfb6b56ecb74b26854df Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 10:29:09 +0100 Subject: [PATCH 2/7] fix: Expose C headers to Swift --- ios/flutter_security_suite/Package.swift | 8 ++++++-- .../Sources/CInternalDarwin/empty.c | 7 +++++++ .../CInternalDarwin/include/CInternalDarwin.h | 14 ++++++++++++++ .../flutter_security_suite/DebuggerChecker.swift | 2 ++ .../flutter_security_suite/JailbreakChecker.swift | 6 ++++++ .../ReverseEngineerChecker.swift | 2 ++ 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 ios/flutter_security_suite/Sources/CInternalDarwin/empty.c create mode 100644 ios/flutter_security_suite/Sources/CInternalDarwin/include/CInternalDarwin.h diff --git a/ios/flutter_security_suite/Package.swift b/ios/flutter_security_suite/Package.swift index f89d56a..5c61a41 100644 --- a/ios/flutter_security_suite/Package.swift +++ b/ios/flutter_security_suite/Package.swift @@ -6,7 +6,7 @@ import PackageDescription let package = Package( name: "flutter_security_suite", platforms: [ - .iOS("12.0") + .iOS("13.0") ], products: [ .library(name: "flutter-security-suite", targets: ["flutter_security_suite"]) @@ -18,8 +18,12 @@ let package = Package( .target( name: "flutter_security_suite", dependencies: [ - .product(name: "FlutterFramework", package: "FlutterFramework") + .product(name: "FlutterFramework", package: "FlutterFramework"), + "CInternalDarwin" ] + ), + .target( + name: "CInternalDarwin" ) ] ) diff --git a/ios/flutter_security_suite/Sources/CInternalDarwin/empty.c b/ios/flutter_security_suite/Sources/CInternalDarwin/empty.c new file mode 100644 index 0000000..580a6b1 --- /dev/null +++ b/ios/flutter_security_suite/Sources/CInternalDarwin/empty.c @@ -0,0 +1,7 @@ +// +// empty.c +// flutter_security_suite +// +// Created by Tom Handcock on 08/05/2026. +// + diff --git a/ios/flutter_security_suite/Sources/CInternalDarwin/include/CInternalDarwin.h b/ios/flutter_security_suite/Sources/CInternalDarwin/include/CInternalDarwin.h new file mode 100644 index 0000000..8628c68 --- /dev/null +++ b/ios/flutter_security_suite/Sources/CInternalDarwin/include/CInternalDarwin.h @@ -0,0 +1,14 @@ +// +// CInternalDarwin.h +// flutter_security_suite +// +// Created by Tom Handcock on 08/05/2026. +// + +#ifndef CInternalDarwin_h +#define CInternalDarwin_h + +#include +#include + +#endif diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift index 877bca4..c4d7d6c 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift @@ -4,6 +4,8 @@ // // Created by Tom Handcock on 24/06/2025. // +import CInternalDarwin +import Darwin class DebuggerChecker { func isDebugged() -> Bool { diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift index bbd4685..1c380d7 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift @@ -5,6 +5,12 @@ // Created by Tom Handcock on 24/06/2025. // // Based on checks described in https://github.com/securing/IOSSecuritySuite/tree/1.9.11 + +import CInternalDarwin +import Darwin +import Foundation +import UIKit + class JailbreakChecker { let simulatorChecker: SimulatorChecker diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift index f169d2e..cb8b8aa 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift @@ -4,6 +4,8 @@ // // Created by Tom Handcock on 24/06/2025. // +import CInternalDarwin +import Darwin class ReverseEngineerChecker { From 90a594025a42f90af2ca7237fdb3b5d692cbaaab Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 10:32:09 +0100 Subject: [PATCH 3/7] docs: Remove template from example `README.md` --- example/README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/example/README.md b/example/README.md index 51a3c1f..dec67f0 100644 --- a/example/README.md +++ b/example/README.md @@ -1,16 +1,3 @@ # flutter_security_suite_example Demonstrates how to use the flutter_security_suite plugin. - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) - -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. From d97811b3b0bc521aa672de705051e9de6ce2b677 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 10:32:35 +0100 Subject: [PATCH 4/7] feat: Bump minimum iOS version to 13 --- ios/flutter_security_suite.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/flutter_security_suite.podspec b/ios/flutter_security_suite.podspec index 36b6e0f..0015405 100644 --- a/ios/flutter_security_suite.podspec +++ b/ios/flutter_security_suite.podspec @@ -11,7 +11,7 @@ Security utilities for Flutter apps. s.source = { :path => '.' } s.source_files = 'flutter_security_suite/Sources/flutter_security_suite/**/*.swift' s.dependency 'Flutter' - s.platform = :ios, '12.0' + s.platform = :ios, '13.0' # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } From bd1e91b867f4eb77943bcaaf29e1ed4322f3fa50 Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 10:54:16 +0100 Subject: [PATCH 5/7] fix: Conditionally include `CInternalDarwin` target iff. swift package --- .../Sources/flutter_security_suite/DebuggerChecker.swift | 2 ++ .../Sources/flutter_security_suite/JailbreakChecker.swift | 2 ++ .../Sources/flutter_security_suite/ReverseEngineerChecker.swift | 2 ++ 3 files changed, 6 insertions(+) diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift index c4d7d6c..06050cd 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/DebuggerChecker.swift @@ -4,8 +4,10 @@ // // Created by Tom Handcock on 24/06/2025. // +#if SWIFT_PACKAGE import CInternalDarwin import Darwin +#endif class DebuggerChecker { func isDebugged() -> Bool { diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift index 1c380d7..f3d58eb 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/JailbreakChecker.swift @@ -6,8 +6,10 @@ // // Based on checks described in https://github.com/securing/IOSSecuritySuite/tree/1.9.11 +#if SWIFT_PACKAGE import CInternalDarwin import Darwin +#endif import Foundation import UIKit diff --git a/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift b/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift index cb8b8aa..89172b2 100644 --- a/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift +++ b/ios/flutter_security_suite/Sources/flutter_security_suite/ReverseEngineerChecker.swift @@ -4,8 +4,10 @@ // // Created by Tom Handcock on 24/06/2025. // +#if SWIFT_PACKAGE import CInternalDarwin import Darwin +#endif class ReverseEngineerChecker { From 0879fd8fac18f99e3dc8ab4395ee87d76696c1dc Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 10:59:22 +0100 Subject: [PATCH 6/7] feat: Migrate example app to SPM + UISceneLifecycle --- example/ios/Flutter/AppFrameworkInfo.plist | 2 - example/ios/Flutter/Debug.xcconfig | 1 - example/ios/Flutter/Release.xcconfig | 1 - example/ios/Podfile | 43 ------ example/ios/Podfile.lock | 28 ---- example/ios/Runner.xcodeproj/project.pbxproj | 125 ++++-------------- .../xcshareddata/xcschemes/Runner.xcscheme | 20 +++ example/ios/Runner/AppDelegate.swift | 7 +- example/ios/Runner/Info.plist | 29 +++- example/pubspec.lock | 24 ++-- 10 files changed, 89 insertions(+), 191 deletions(-) delete mode 100644 example/ios/Podfile delete mode 100644 example/ios/Podfile.lock diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 7c56964..391a902 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig index ec97fc6..592ceee 100644 --- a/example/ios/Flutter/Debug.xcconfig +++ b/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig index c4855bf..592ceee 100644 --- a/example/ios/Flutter/Release.xcconfig +++ b/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Podfile b/example/ios/Podfile deleted file mode 100644 index e549ee2..0000000 --- a/example/ios/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '12.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock deleted file mode 100644 index b0584b5..0000000 --- a/example/ios/Podfile.lock +++ /dev/null @@ -1,28 +0,0 @@ -PODS: - - Flutter (1.0.0) - - flutter_security_suite (0.0.1): - - Flutter - - integration_test (0.0.1): - - Flutter - -DEPENDENCIES: - - Flutter (from `Flutter`) - - flutter_security_suite (from `.symlinks/plugins/flutter_security_suite/ios`) - - integration_test (from `.symlinks/plugins/integration_test/ios`) - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - flutter_security_suite: - :path: ".symlinks/plugins/flutter_security_suite/ios" - integration_test: - :path: ".symlinks/plugins/integration_test/ios" - -SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_security_suite: a9890dcbd2e76a83bc2298f3f6b2d9f315376ce8 - integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e - -PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5 - -COCOAPODS: 1.16.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 4bfc4e0..522b916 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,11 +7,10 @@ objects = { /* Begin PBXBuildFile section */ - 06C8C0D3CF976D1D69498A09 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EAACB7790AEE144371DAD0C /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 1AA504E7684C8B39B5B00931 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA5023F8CC0B967ADF663A14 /* Pods_RunnerTests.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 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 */; }; @@ -43,14 +42,11 @@ /* Begin PBXFileReference section */ 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 = ""; }; - 2EAACB7790AEE144371DAD0C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3225712303A52FBEF52BF0E5 /* 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 = ""; }; 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 = ""; }; - 502C6C4C877C6DA4D4326B68 /* 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 = ""; }; 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 = ""; }; - 74E78E3A4379A79C8EFEEC23 /* 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 = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; 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 = ""; }; @@ -59,10 +55,6 @@ 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 = ""; }; - A131707164119A63A6B3A3B5 /* 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 = ""; }; - CA5023F8CC0B967ADF663A14 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CDB33CE8F0AD18FA7FE718F9 /* 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 = ""; }; - DD9F4103BE12F7167044727D /* 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 */ @@ -70,7 +62,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1AA504E7684C8B39B5B00931 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -78,22 +69,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 06C8C0D3CF976D1D69498A09 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 064094E3410EDF0878A0F06A /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2EAACB7790AEE144371DAD0C /* Pods_Runner.framework */, - CA5023F8CC0B967ADF663A14 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 331C8082294A63A400263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -104,6 +86,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -120,7 +103,6 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, AA06477C9E5353785ACD0306 /* Pods */, - 064094E3410EDF0878A0F06A /* Frameworks */, ); sourceTree = ""; }; @@ -151,12 +133,6 @@ AA06477C9E5353785ACD0306 /* Pods */ = { isa = PBXGroup; children = ( - 502C6C4C877C6DA4D4326B68 /* Pods-Runner.debug.xcconfig */, - CDB33CE8F0AD18FA7FE718F9 /* Pods-Runner.release.xcconfig */, - A131707164119A63A6B3A3B5 /* Pods-Runner.profile.xcconfig */, - 3225712303A52FBEF52BF0E5 /* Pods-RunnerTests.debug.xcconfig */, - DD9F4103BE12F7167044727D /* Pods-RunnerTests.release.xcconfig */, - 74E78E3A4379A79C8EFEEC23 /* Pods-RunnerTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -168,7 +144,6 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 1AEBC890EE5EEFF821F5BC55 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, 2FEC2D68D2973627684E8349 /* Frameworks */, @@ -187,20 +162,21 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 8EB0CEA059EEE71516130123 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - DA89AA7750CC03BCF3CE6CD1 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -234,6 +210,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -266,28 +245,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1AEBC890EE5EEFF821F5BC55 /* [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; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -304,28 +261,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 8EB0CEA059EEE71516130123 /* [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-Runner-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; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -341,23 +276,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - DA89AA7750CC03BCF3CE6CD1 /* [CP] Embed Pods Frameworks */ = { - 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"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -450,7 +368,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; @@ -483,7 +401,6 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3225712303A52FBEF52BF0E5 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -501,7 +418,6 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DD9F4103BE12F7167044727D /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -517,7 +433,6 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 74E78E3A4379A79C8EFEEC23 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -580,7 +495,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; @@ -631,7 +546,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; @@ -721,6 +636,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 15cada4..c3fedb2 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 3029c21..2f5ec71 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -24,6 +26,29 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -41,9 +66,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - diff --git a/example/pubspec.lock b/example/pubspec.lock index 12e9f88..a2df242 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" clock: dependency: transitive description: @@ -141,26 +141,26 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.19" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" path: dependency: transitive description: @@ -250,10 +250,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.10" vector_math: dependency: transitive description: @@ -279,5 +279,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=3.8.0-0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.9.0-0 <4.0.0" + flutter: ">=3.41.0" From 8d0a488b8c28d66677f6e69745e3869ffe2cee8d Mon Sep 17 00:00:00 2001 From: Tom Ha Date: Mon, 11 May 2026 11:18:15 +0100 Subject: [PATCH 7/7] ci: Fix pull request workflow script --- .github/workflows/action_pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action_pull_request.yml b/.github/workflows/action_pull_request.yml index 4cb31a0..70fcdc0 100644 --- a/.github/workflows/action_pull_request.yml +++ b/.github/workflows/action_pull_request.yml @@ -15,4 +15,4 @@ jobs: flutter pub get - name: Run unit tests run: | - dart run test test/unit \ No newline at end of file + flutter test test/unit \ No newline at end of file