diff --git a/.github/workflows/flutter-ci.yml b/.github/workflows/flutter-ci.yml index 642906630..d826aa3ca 100644 --- a/.github/workflows/flutter-ci.yml +++ b/.github/workflows/flutter-ci.yml @@ -75,13 +75,13 @@ jobs: disable-animations: false script: echo "Generated AVD snapshot for caching." - - name: Setup Flutter 3.38.x + - name: Setup Flutter 3.41.x uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2 with: - flutter-version: "3.38.x" + flutter-version: "3.41.x" channel: "stable" cache: true - cache-key: flutter-3.38.x + cache-key: flutter-3.41.x cache-path: ${{ runner.tool_cache }}/flutter - name: Create .env file diff --git a/.github/workflows/flutter-deploy.yml b/.github/workflows/flutter-deploy.yml index ac43ae698..90899b7b4 100644 --- a/.github/workflows/flutter-deploy.yml +++ b/.github/workflows/flutter-deploy.yml @@ -69,13 +69,13 @@ jobs: disable-animations: false script: echo "Generated AVD snapshot for caching." - - name: Setup Flutter 3.38.x + - name: Setup Flutter 3.41.x uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2 with: - flutter-version: "3.38.x" + flutter-version: "3.41.x" channel: "stable" cache: true - cache-key: flutter-3.38.x + cache-key: flutter-3.41.x cache-path: ${{ runner.tool_cache }}/flutter - name: Create .env file diff --git a/.github/workflows/flutter-unit-tests.yml b/.github/workflows/flutter-unit-tests.yml index 62fcc028d..e2a4e1c78 100644 --- a/.github/workflows/flutter-unit-tests.yml +++ b/.github/workflows/flutter-unit-tests.yml @@ -20,13 +20,13 @@ jobs: - name: Checkout files uses: actions/checkout@v4 - - name: Setup Flutter 3.38.x + - name: Setup Flutter 3.41.x uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2 with: - flutter-version: "3.38.x" + flutter-version: "3.41.x" channel: "stable" cache: true - cache-key: flutter-3.38.x + cache-key: flutter-3.41.x cache-path: ${{ runner.tool_cache }}/flutter - name: Create .env file diff --git a/.github/workflows/mobile-curriculum-e2e.yml b/.github/workflows/mobile-curriculum-e2e.yml index 0c85945f1..2f82c0792 100644 --- a/.github/workflows/mobile-curriculum-e2e.yml +++ b/.github/workflows/mobile-curriculum-e2e.yml @@ -27,7 +27,7 @@ jobs: android-api-level: [35] node-version: [24] pnpm-version: [10] - flutter-version: ["3.38.x"] + flutter-version: ["3.41.x"] steps: - name: Remove unused software diff --git a/codemagic.yaml b/codemagic.yaml index 076b14117..e63814e42 100644 --- a/codemagic.yaml +++ b/codemagic.yaml @@ -15,7 +15,7 @@ workflows: cancel_previous_builds: true environment: - flutter: 3.38.5 + flutter: 3.41.3 xcode: latest cocoapods: default groups: @@ -87,7 +87,7 @@ workflows: cancel_previous_builds: true environment: - flutter: 3.38.5 + flutter: 3.41.3 xcode: latest cocoapods: default ios_signing: diff --git a/mobile-app/ios/Runner/AppDelegate.swift b/mobile-app/ios/Runner/AppDelegate.swift index 9e09de7b1..1e87aba32 100644 --- a/mobile-app/ios/Runner/AppDelegate.swift +++ b/mobile-app/ios/Runner/AppDelegate.swift @@ -1,17 +1,18 @@ import UIKit import Flutter +import flutter_local_notifications @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - if #available(iOS 10.0, *) { - UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate - } - - GeneratedPluginRegistrant.register(with: self) + UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/mobile-app/ios/Runner/Info-Debug.plist b/mobile-app/ios/Runner/Info-Debug.plist index f57639a21..bea522cef 100644 --- a/mobile-app/ios/Runner/Info-Debug.plist +++ b/mobile-app/ios/Runner/Info-Debug.plist @@ -71,5 +71,26 @@ UIStatusBarHidden + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + diff --git a/mobile-app/ios/Runner/Info-Profile.plist b/mobile-app/ios/Runner/Info-Profile.plist index 2e2ce2a0b..dea4fb50f 100644 --- a/mobile-app/ios/Runner/Info-Profile.plist +++ b/mobile-app/ios/Runner/Info-Profile.plist @@ -1,77 +1,98 @@ - - CADisableMinimumFrameDurationOnPhone - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - freeCodeCamp - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleTypeRole - None - CFBundleURLName - auth0 - CFBundleURLSchemes - - $(PRODUCT_BUNDLE_IDENTIFIER) - - - - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - ITSAppUsesNonExemptEncryption - - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSBonjourServices - - _dartobservatory._tcp - - UIBackgroundModes - - audio - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - UIStatusBarHidden - - + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + freeCodeCamp + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + None + CFBundleURLName + auth0 + CFBundleURLSchemes + + $(PRODUCT_BUNDLE_IDENTIFIER) + + + + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSBonjourServices + + _dartobservatory._tcp + + UIBackgroundModes + + audio + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + UIStatusBarHidden + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + + diff --git a/mobile-app/ios/Runner/Info-Release.plist b/mobile-app/ios/Runner/Info-Release.plist index 17aa594ae..082ee7123 100644 --- a/mobile-app/ios/Runner/Info-Release.plist +++ b/mobile-app/ios/Runner/Info-Release.plist @@ -69,5 +69,26 @@ UIStatusBarHidden + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + +