From 445e7cf0918446b8b32a2197d38370231acad7fb Mon Sep 17 00:00:00 2001 From: SikanderSaleem Date: Wed, 25 Mar 2026 11:21:18 +0300 Subject: [PATCH] ios sdk upgraded to 26 and ui sense migration. --- ios/Podfile | 42 +-- ios/Podfile.lock | 371 --------------------------- ios/Runner.xcodeproj/project.pbxproj | 112 ++++---- ios/Runner/AppDelegate.swift | 28 +- ios/Runner/Info.plist | 17 ++ ios/Runner/SceneDelegate.swift | 58 +++++ pubspec.lock | 4 +- pubspec.yaml | 2 +- 8 files changed, 185 insertions(+), 449 deletions(-) delete mode 100644 ios/Podfile.lock create mode 100644 ios/Runner/SceneDelegate.swift diff --git a/ios/Podfile b/ios/Podfile index de9dd564..5596a08a 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '13.0' +platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -40,26 +40,28 @@ post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' + + # Fix for Xcode 15+ DT_TOOLCHAIN_DIR issue + if config.base_configuration_reference && File.exist?(config.base_configuration_reference.real_path) + xcconfig_path = config.base_configuration_reference.real_path + xcconfig = File.read(xcconfig_path) + xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR") + File.open(xcconfig_path, "w") { |file| file << xcconfig_mod } + end end - target.build_configurations.each do |config| - flutter_additional_ios_build_settings(target) - xcconfig_path = config.base_configuration_reference.real_path - xcconfig = File.read(xcconfig_path) - xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR") - File.open(xcconfig_path, "w") { |file| file << xcconfig_mod } - end end + installer.generated_projects.each do |project| - project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' - config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ - '$(inherited)', - ## dart: PermissionGroup.microphone - 'PERMISSION_MICROPHONE=1', - ] - end - end + project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ + '$(inherited)', + ## dart: PermissionGroup.microphone + 'PERMISSION_MICROPHONE=1', + ] end -end + end + end +end \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index ffbf5eb6..00000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1,371 +0,0 @@ -PODS: - - audio_session (0.0.1): - - Flutter - - audioplayers_darwin (0.0.1): - - Flutter - - device_calendar (0.0.1): - - Flutter - - DKImagePickerController/Core (4.3.9): - - DKImagePickerController/ImageDataManager - - DKImagePickerController/Resource - - DKImagePickerController/ImageDataManager (4.3.9) - - DKImagePickerController/PhotoGallery (4.3.9): - - DKImagePickerController/Core - - DKPhotoGallery - - DKImagePickerController/Resource (4.3.9) - - DKPhotoGallery (0.0.19): - - DKPhotoGallery/Core (= 0.0.19) - - DKPhotoGallery/Model (= 0.0.19) - - DKPhotoGallery/Preview (= 0.0.19) - - DKPhotoGallery/Resource (= 0.0.19) - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Core (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Preview - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Model (0.0.19): - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Preview (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Resource - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Resource (0.0.19): - - SDWebImage - - SwiftyGif - - DTTJailbreakDetection (0.4.0) - - file_picker (0.0.1): - - DKImagePickerController/PhotoGallery - - Flutter - - Firebase/CoreOnly (11.2.0): - - FirebaseCore (= 11.2.0) - - Firebase/Messaging (11.2.0): - - Firebase/CoreOnly - - FirebaseMessaging (~> 11.2.0) - - firebase_core (3.6.0): - - Firebase/CoreOnly (= 11.2.0) - - Flutter - - firebase_messaging (15.1.3): - - Firebase/Messaging (= 11.2.0) - - firebase_core - - Flutter - - FirebaseCore (11.2.0): - - FirebaseCoreInternal (~> 11.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.9.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.4.0): - - FirebaseCore (~> 11.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) - - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.2.0): - - FirebaseCore (~> 11.0) - - FirebaseInstallations (~> 11.0) - - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Reachability (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) - - nanopb (~> 3.30910.0) - - Flutter (1.0.0) - - flutter_keyboard_visibility (0.0.1): - - Flutter - - flutter_local_notifications (0.0.1): - - Flutter - - flutter_sound (9.6.0): - - Flutter - - flutter_sound_core (= 9.6.0) - - flutter_sound_core (9.6.0) - - flutter_timezone (0.0.1): - - Flutter - - fluttertoast (0.0.2): - - Flutter - - Toast - - FMDB (2.7.12): - - FMDB/standard (= 2.7.12) - - FMDB/Core (2.7.12) - - FMDB/standard (2.7.12): - - FMDB/Core - - geolocator_apple (1.2.0): - - Flutter - - GoogleDataTransport (10.1.0): - - nanopb (~> 3.30910.0) - - PromisesObjC (~> 2.4) - - GoogleUtilities/AppDelegateSwizzler (8.0.2): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.0.2): - - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.0.2): - - GoogleUtilities/Environment - - GoogleUtilities/Privacy - - GoogleUtilities/Network (8.0.2): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Privacy - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (8.0.2)": - - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (8.0.2) - - GoogleUtilities/Reachability (8.0.2): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (8.0.2): - - GoogleUtilities/Logger - - GoogleUtilities/Privacy - - image_cropper (0.0.4): - - Flutter - - TOCropViewController (~> 2.7.4) - - image_picker_ios (0.0.1): - - Flutter - - just_audio (0.0.1): - - Flutter - - local_auth_darwin (0.0.1): - - Flutter - - FlutterMacOS - - MTBBarcodeScanner (5.0.11) - - nanopb (3.30910.0): - - nanopb/decode (= 3.30910.0) - - nanopb/encode (= 3.30910.0) - - nanopb/decode (3.30910.0) - - nanopb/encode (3.30910.0) - - nfc_manager (0.0.1): - - Flutter - - open_file_ios (0.0.1): - - Flutter - - package_info_plus (0.4.5): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - permission_handler_apple (9.3.0): - - Flutter - - pointer_interceptor_ios (0.0.1): - - Flutter - - PromisesObjC (2.4.0) - - qr_code_scanner (0.2.0): - - Flutter - - MTBBarcodeScanner - - record_mp3_plus (1.0.0): - - Flutter - - rive_common (0.0.1): - - Flutter - - safe_device (1.0.0): - - DTTJailbreakDetection - - Flutter - - SDWebImage (5.21.0): - - SDWebImage/Core (= 5.21.0) - - SDWebImage/Core (5.21.0) - - share_plus (0.0.1): - - Flutter - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - - speech_to_text (0.0.1): - - Flutter - - FlutterMacOS - - Try - - sqflite (0.0.3): - - Flutter - - FlutterMacOS - - SwiftyGif (5.4.5) - - Toast (4.1.1) - - TOCropViewController (2.7.4) - - Try (2.1.1) - - url_launcher_ios (0.0.1): - - Flutter - - wifi_iot (0.0.1): - - Flutter - -DEPENDENCIES: - - audio_session (from `.symlinks/plugins/audio_session/ios`) - - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) - - device_calendar (from `.symlinks/plugins/device_calendar/ios`) - - file_picker (from `.symlinks/plugins/file_picker/ios`) - - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - - Flutter (from `Flutter`) - - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) - - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - - flutter_sound (from `.symlinks/plugins/flutter_sound/ios`) - - flutter_timezone (from `.symlinks/plugins/flutter_timezone/ios`) - - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - FMDB - - geolocator_apple (from `.symlinks/plugins/geolocator_apple/ios`) - - image_cropper (from `.symlinks/plugins/image_cropper/ios`) - - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - just_audio (from `.symlinks/plugins/just_audio/ios`) - - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`) - - nfc_manager (from `.symlinks/plugins/nfc_manager/ios`) - - open_file_ios (from `.symlinks/plugins/open_file_ios/ios`) - - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - - pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`) - - qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`) - - record_mp3_plus (from `.symlinks/plugins/record_mp3_plus/ios`) - - rive_common (from `.symlinks/plugins/rive_common/ios`) - - safe_device (from `.symlinks/plugins/safe_device/ios`) - - share_plus (from `.symlinks/plugins/share_plus/ios`) - - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - speech_to_text (from `.symlinks/plugins/speech_to_text/darwin`) - - sqflite (from `.symlinks/plugins/sqflite/darwin`) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - wifi_iot (from `.symlinks/plugins/wifi_iot/ios`) - -SPEC REPOS: - trunk: - - DKImagePickerController - - DKPhotoGallery - - DTTJailbreakDetection - - Firebase - - FirebaseCore - - FirebaseCoreInternal - - FirebaseInstallations - - FirebaseMessaging - - flutter_sound_core - - FMDB - - GoogleDataTransport - - GoogleUtilities - - MTBBarcodeScanner - - nanopb - - PromisesObjC - - SDWebImage - - SwiftyGif - - Toast - - TOCropViewController - - Try - -EXTERNAL SOURCES: - audio_session: - :path: ".symlinks/plugins/audio_session/ios" - audioplayers_darwin: - :path: ".symlinks/plugins/audioplayers_darwin/ios" - device_calendar: - :path: ".symlinks/plugins/device_calendar/ios" - file_picker: - :path: ".symlinks/plugins/file_picker/ios" - firebase_core: - :path: ".symlinks/plugins/firebase_core/ios" - firebase_messaging: - :path: ".symlinks/plugins/firebase_messaging/ios" - Flutter: - :path: Flutter - flutter_keyboard_visibility: - :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" - flutter_local_notifications: - :path: ".symlinks/plugins/flutter_local_notifications/ios" - flutter_sound: - :path: ".symlinks/plugins/flutter_sound/ios" - flutter_timezone: - :path: ".symlinks/plugins/flutter_timezone/ios" - fluttertoast: - :path: ".symlinks/plugins/fluttertoast/ios" - geolocator_apple: - :path: ".symlinks/plugins/geolocator_apple/ios" - image_cropper: - :path: ".symlinks/plugins/image_cropper/ios" - image_picker_ios: - :path: ".symlinks/plugins/image_picker_ios/ios" - just_audio: - :path: ".symlinks/plugins/just_audio/ios" - local_auth_darwin: - :path: ".symlinks/plugins/local_auth_darwin/darwin" - nfc_manager: - :path: ".symlinks/plugins/nfc_manager/ios" - open_file_ios: - :path: ".symlinks/plugins/open_file_ios/ios" - package_info_plus: - :path: ".symlinks/plugins/package_info_plus/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - permission_handler_apple: - :path: ".symlinks/plugins/permission_handler_apple/ios" - pointer_interceptor_ios: - :path: ".symlinks/plugins/pointer_interceptor_ios/ios" - qr_code_scanner: - :path: ".symlinks/plugins/qr_code_scanner/ios" - record_mp3_plus: - :path: ".symlinks/plugins/record_mp3_plus/ios" - rive_common: - :path: ".symlinks/plugins/rive_common/ios" - safe_device: - :path: ".symlinks/plugins/safe_device/ios" - share_plus: - :path: ".symlinks/plugins/share_plus/ios" - shared_preferences_foundation: - :path: ".symlinks/plugins/shared_preferences_foundation/darwin" - speech_to_text: - :path: ".symlinks/plugins/speech_to_text/darwin" - sqflite: - :path: ".symlinks/plugins/sqflite/darwin" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" - wifi_iot: - :path: ".symlinks/plugins/wifi_iot/ios" - -SPEC CHECKSUMS: - audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207 - audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40 - device_calendar: 9cb33f88a02e19652ec7b8b122ca778f751b1f7b - DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c - DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71 - file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 - Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c - firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af - firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38 - FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da - FirebaseCoreInternal: 154779013b85b4b290fdba38414df475f42e3096 - FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414 - FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_sound: dde9a913063b65a27ba8fdc2039036b99b136c79 - flutter_sound_core: 0c6eb9d5268adc70ff159b3d65fd3d98a82d3a27 - flutter_timezone: ffb07bdad3c6276af8dada0f11978d8a1f8a20bb - fluttertoast: 723e187574b149e68e63ca4d39b837586b903cfa - FMDB: 728731dd336af3936ce00f91d9d8495f5718a0e6 - geolocator_apple: 9bcea1918ff7f0062d98345d238ae12718acfbc1 - GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 - GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 - just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 - MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb - nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - nfc_manager: d7da7cb781f7744b94df5fe9dbca904ac4a0939e - open_file_ios: 461db5853723763573e140de3193656f91990d9e - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - pointer_interceptor_ios: 508241697ff0947f853c061945a8b822463947c1 - PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e - record_mp3_plus: be7806da5b5ff9694f8069f401120853c89f3398 - rive_common: cbbac3192af00d7341f19dae2f26298e9e37d99e - safe_device: 4539eb6bdbeb4b61a763a51c4e73e6b37dea4e3d - SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868 - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - speech_to_text: 627d3fd2194770b51abb324ba45c2d39398f24a8 - sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 - Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - wifi_iot: b5aafd6f9b52f8a357383a1deabab45f31cd602d - -PODFILE CHECKSUM: d8654c27146ad2b7c852fbdd93ef1a3785d9310b - -COCOAPODS: 1.12.0 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 5d0c0f62..5b01652c 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -10,9 +10,10 @@ 0019C6AE2C58E1300073B551 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0019C6AD2C58E1300073B551 /* PrivacyInfo.xcprivacy */; }; 00C3AFCE29769C38002E7B47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 1C2510C66EF1CE68674F8D91 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 497190B38FFC98620EA9797F /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 4FEDC06DF1F9574ACEB65750 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B9B3A26B33EA770D222A2E /* Pods_Runner.framework */; }; + 74858FAC1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 74858FB01ED2DC5600515811 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAF1ED2DC5600515811 /* SceneDelegate.swift */; }; 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 */; }; @@ -35,14 +36,17 @@ 0019C6AD2C58E1300073B551 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 00C3AFCC297590E6002E7B47 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; 00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - 0ECD3ADD8E0175BE23CB7A05 /* 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 = ""; }; 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 = ""; }; + 1F899C1524C8635B65AAAECE /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 497190B38FFC98620EA9797F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3F10DD78C0DD8409D2593074 /* 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 = ""; }; 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 = ""; }; + 74858FAF1ED2DC5600515811 /* SceneDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 7AC19FD7B0F036DCE6075956 /* 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 = ""; }; + 84B9B3A26B33EA770D222A2E /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 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 = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -50,8 +54,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 = ""; }; - EC5F078EEFBD74D1AF863044 /* 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 = ""; }; - FD87E15310557763C05F0B8F /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -59,7 +61,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1C2510C66EF1CE68674F8D91 /* Pods_Runner.framework in Frameworks */, + 4FEDC06DF1F9574ACEB65750 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -69,17 +71,17 @@ 577ED37A491ADCF557B4F6D9 /* Pods */ = { isa = PBXGroup; children = ( - 0ECD3ADD8E0175BE23CB7A05 /* Pods-Runner.debug.xcconfig */, - FD87E15310557763C05F0B8F /* Pods-Runner.release.xcconfig */, - EC5F078EEFBD74D1AF863044 /* Pods-Runner.profile.xcconfig */, + 1F899C1524C8635B65AAAECE /* Pods-Runner.debug.xcconfig */, + 3F10DD78C0DD8409D2593074 /* Pods-Runner.release.xcconfig */, + 7AC19FD7B0F036DCE6075956 /* Pods-Runner.profile.xcconfig */, ); path = Pods; sourceTree = ""; }; - 9259EE6F302BB71769FADCB7 /* Frameworks */ = { + 9697F32DECD4452FE7AC8BCA /* Frameworks */ = { isa = PBXGroup; children = ( - 497190B38FFC98620EA9797F /* Pods_Runner.framework */, + 84B9B3A26B33EA770D222A2E /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -103,7 +105,7 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 577ED37A491ADCF557B4F6D9 /* Pods */, - 9259EE6F302BB71769FADCB7 /* Frameworks */, + 9697F32DECD4452FE7AC8BCA /* Frameworks */, ); sourceTree = ""; }; @@ -127,6 +129,7 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAF1ED2DC5600515811 /* SceneDelegate.swift */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, ); path = Runner; @@ -139,15 +142,15 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E66B34102904D744CC8B9A62 /* [CP] Check Pods Manifest.lock */, + 807F7F52FECA6E788CED5096 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, E50AEC852F3CD47400480356 /* Embed Frameworks */, - E37CD7851EAA415F8364ED38 /* [CP] Embed Pods Frameworks */, - 50D36817434177389F3729A0 /* [CP] Copy Pods Resources */, + 83FC5123B23BD81010077FCF /* [CP] Embed Pods Frameworks */, + 209AA94DF77AC28D6C6BD093 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -209,55 +212,62 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 209AA94DF77AC28D6C6BD093 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "Thin Binary"; - outputPaths = ( + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - 50D36817434177389F3729A0 /* [CP] Copy Pods Resources */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + name = "Thin Binary"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 807F7F52FECA6E788CED5096 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Run Script"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + 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; }; - E37CD7851EAA415F8364ED38 /* [CP] Embed Pods Frameworks */ = { + 83FC5123B23BD81010077FCF /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -274,27 +284,20 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - E66B34102904D744CC8B9A62 /* [CP] Check Pods Manifest.lock */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Run Script"; 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; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; /* End PBXShellScriptBuildPhase section */ @@ -303,7 +306,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 74858FAC1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 74858FB01ED2DC5600515811 /* SceneDelegate.swift in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -375,7 +379,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -399,7 +403,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Atoms; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -530,7 +534,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -583,7 +587,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -609,7 +613,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Atoms; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -705,7 +709,7 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Atoms; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 922653d0..ef59ea7f 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -4,12 +4,38 @@ import Firebase @main @objc class AppDelegate: FlutterAppDelegate { + + // Expose the Flutter engine for SceneDelegate to use + lazy var flutterEngine = FlutterEngine(name: "my flutter engine") + override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { + // Initialize Firebase FirebaseApp.configure() - GeneratedPluginRegistrant.register(with: self) + + // Start running the Flutter engine + flutterEngine.run() + + // Register plugins with the engine + GeneratedPluginRegistrant.register(with: self.flutterEngine) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + // UIScene lifecycle support + override func application( + _ application: UIApplication, + configurationForConnecting connectingSceneSession: UISceneSession, + options: UIScene.ConnectionOptions + ) -> UISceneConfiguration { + let sceneConfiguration = UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + sceneConfiguration.delegateClass = SceneDelegate.self + return sceneConfiguration + } } + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index d9114032..8792c07d 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -106,5 +106,22 @@ TAG + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + diff --git a/ios/Runner/SceneDelegate.swift b/ios/Runner/SceneDelegate.swift new file mode 100644 index 00000000..5f03a241 --- /dev/null +++ b/ios/Runner/SceneDelegate.swift @@ -0,0 +1,58 @@ +import UIKit +import Flutter + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + var window: UIWindow? + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + guard let windowScene = (scene as? UIWindowScene) else { return } + + // Get the FlutterEngine from AppDelegate + guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { + fatalError("AppDelegate not found") + } + + // Create FlutterViewController using the engine from AppDelegate + let flutterViewController = FlutterViewController(engine: appDelegate.flutterEngine, nibName: nil, bundle: nil) + + // Create and configure window + let window = UIWindow(windowScene: windowScene) + window.rootViewController = flutterViewController + self.window = window + window.makeKeyAndVisible() + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that it makes sense to release (read the scene lifecycle section of the documentation for more information). + // The scene may re-connect later, as its session was not necessarily discarded (see `application:configurationForConnectingSceneSession` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } +} + + + + + + diff --git a/pubspec.lock b/pubspec.lock index c30cf843..7d4d8c0e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -309,10 +309,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: ab13ae8ef5580a411c458d6207b6774a6c237d77ac37011b13994879f68a8810 + sha256: "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343" url: "https://pub.dev" source: hosted - version: "8.3.7" + version: "10.3.10" file_selector_linux: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 6143d6c3..fc8eab61 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -72,7 +72,7 @@ dependencies: signature: ^5.5.0 flutter_svg: ^2.2.3 - file_picker: ^8.3.7 + file_picker: ^10.3.10 record_mp3_plus: ^1.4.1 path_provider: ^2.1.5 open_file: ^3.5.11