| @@ -9,7 +9,7 @@ plugins { | |||||
| } | } | ||||
| android { | android { | ||||
| namespace = "com.example.qadirneyriz" | |||||
| namespace = "com.nghsco.mizban" | |||||
| compileSdk = flutter.compileSdkVersion | compileSdk = flutter.compileSdkVersion | ||||
| ndkVersion = flutter.ndkVersion | ndkVersion = flutter.ndkVersion | ||||
| @@ -24,7 +24,7 @@ android { | |||||
| defaultConfig { | defaultConfig { | ||||
| // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). | ||||
| applicationId = "com.example.qadirneyriz" | |||||
| applicationId = "com.nghsco.mizban" | |||||
| // You can update the following values to match your application needs. | // You can update the following values to match your application needs. | ||||
| // For more information, see: https://flutter.dev/to/review-gradle-config. | // For more information, see: https://flutter.dev/to/review-gradle-config. | ||||
| minSdk = flutter.minSdkVersion | minSdk = flutter.minSdkVersion | ||||
| @@ -23,6 +23,25 @@ | |||||
| "other_platform_oauth_client": [] | "other_platform_oauth_client": [] | ||||
| } | } | ||||
| } | } | ||||
| }, | |||||
| { | |||||
| "client_info": { | |||||
| "mobilesdk_app_id": "1:392489806594:android:6944e598f4a3f5313b301b", | |||||
| "android_client_info": { | |||||
| "package_name": "com.nghsco.mizban" | |||||
| } | |||||
| }, | |||||
| "oauth_client": [], | |||||
| "api_key": [ | |||||
| { | |||||
| "current_key": "AIzaSyAuDK456j4fFdNqrzQRDYyWRcB0VkQ2bCY" | |||||
| } | |||||
| ], | |||||
| "services": { | |||||
| "appinvite_service": { | |||||
| "other_platform_oauth_client": [] | |||||
| } | |||||
| } | |||||
| } | } | ||||
| ], | ], | ||||
| "configuration_version": "1" | "configuration_version": "1" | ||||
| @@ -1,4 +1,4 @@ | |||||
| package com.example.qadirneyriz | |||||
| package com.nghsco.mizban | |||||
| import io.flutter.embedding.android.FlutterActivity | import io.flutter.embedding.android.FlutterActivity | ||||
| @@ -0,0 +1 @@ | |||||
| {"flutter":{"platforms":{"android":{"default":{"projectId":"folad-neiriz","appId":"1:392489806594:android:6944e598f4a3f5313b301b","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"folad-neiriz","appId":"1:392489806594:ios:b93d93374e9671ee3b301b","uploadDebugSymbols":false,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"folad-neiriz","configurations":{"android":"1:392489806594:android:6944e598f4a3f5313b301b","ios":"1:392489806594:ios:b93d93374e9671ee3b301b"}}}}}} | |||||
| @@ -1 +1,2 @@ | |||||
| #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" | |||||
| #include "Generated.xcconfig" | #include "Generated.xcconfig" | ||||
| @@ -1 +1,2 @@ | |||||
| #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" | |||||
| #include "Generated.xcconfig" | #include "Generated.xcconfig" | ||||
| @@ -0,0 +1,30 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||||
| <plist version="1.0"> | |||||
| <dict> | |||||
| <key>API_KEY</key> | |||||
| <string>AIzaSyDmiLNq_t5wyqDE2VW1wGyt6kArchRvLAQ</string> | |||||
| <key>GCM_SENDER_ID</key> | |||||
| <string>392489806594</string> | |||||
| <key>PLIST_VERSION</key> | |||||
| <string>1</string> | |||||
| <key>BUNDLE_ID</key> | |||||
| <string>com.nghsco.mizban</string> | |||||
| <key>PROJECT_ID</key> | |||||
| <string>folad-neiriz</string> | |||||
| <key>STORAGE_BUCKET</key> | |||||
| <string>folad-neiriz.firebasestorage.app</string> | |||||
| <key>IS_ADS_ENABLED</key> | |||||
| <false></false> | |||||
| <key>IS_ANALYTICS_ENABLED</key> | |||||
| <false></false> | |||||
| <key>IS_APPINVITE_ENABLED</key> | |||||
| <true></true> | |||||
| <key>IS_GCM_ENABLED</key> | |||||
| <true></true> | |||||
| <key>IS_SIGNIN_ENABLED</key> | |||||
| <true></true> | |||||
| <key>GOOGLE_APP_ID</key> | |||||
| <string>1:392489806594:ios:b93d93374e9671ee3b301b</string> | |||||
| </dict> | |||||
| </plist> | |||||
| @@ -0,0 +1,44 @@ | |||||
| # Uncomment this line to define a global platform for your project | |||||
| # platform :ios, '14.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! | |||||
| use_modular_headers! | |||||
| 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 | |||||
| @@ -0,0 +1,186 @@ | |||||
| PODS: | |||||
| - DKImagePickerController/Core (4.3.4): | |||||
| - DKImagePickerController/ImageDataManager | |||||
| - DKImagePickerController/Resource | |||||
| - DKImagePickerController/ImageDataManager (4.3.4) | |||||
| - DKImagePickerController/PhotoGallery (4.3.4): | |||||
| - DKImagePickerController/Core | |||||
| - DKPhotoGallery | |||||
| - DKImagePickerController/Resource (4.3.4) | |||||
| - DKPhotoGallery (0.0.17): | |||||
| - DKPhotoGallery/Core (= 0.0.17) | |||||
| - DKPhotoGallery/Model (= 0.0.17) | |||||
| - DKPhotoGallery/Preview (= 0.0.17) | |||||
| - DKPhotoGallery/Resource (= 0.0.17) | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| - DKPhotoGallery/Core (0.0.17): | |||||
| - DKPhotoGallery/Model | |||||
| - DKPhotoGallery/Preview | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| - DKPhotoGallery/Model (0.0.17): | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| - DKPhotoGallery/Preview (0.0.17): | |||||
| - DKPhotoGallery/Model | |||||
| - DKPhotoGallery/Resource | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| - DKPhotoGallery/Resource (0.0.17): | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| - file_picker (0.0.1): | |||||
| - DKImagePickerController/PhotoGallery | |||||
| - Flutter | |||||
| - Firebase/CoreOnly (11.4.0): | |||||
| - FirebaseCore (= 11.4.0) | |||||
| - Firebase/Messaging (11.4.0): | |||||
| - Firebase/CoreOnly | |||||
| - FirebaseMessaging (~> 11.4.0) | |||||
| - firebase_core (3.8.0): | |||||
| - Firebase/CoreOnly (= 11.4.0) | |||||
| - Flutter | |||||
| - firebase_messaging (15.1.5): | |||||
| - Firebase/Messaging (= 11.4.0) | |||||
| - firebase_core | |||||
| - Flutter | |||||
| - FirebaseCore (11.4.0): | |||||
| - FirebaseCoreInternal (~> 11.0) | |||||
| - GoogleUtilities/Environment (~> 8.0) | |||||
| - GoogleUtilities/Logger (~> 8.0) | |||||
| - FirebaseCoreInternal (11.6.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.4.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) | |||||
| - 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 | |||||
| - nanopb (3.30910.0): | |||||
| - nanopb/decode (= 3.30910.0) | |||||
| - nanopb/encode (= 3.30910.0) | |||||
| - nanopb/decode (3.30910.0) | |||||
| - nanopb/encode (3.30910.0) | |||||
| - open_file_ios (0.0.1): | |||||
| - Flutter | |||||
| - path_provider_foundation (0.0.1): | |||||
| - Flutter | |||||
| - FlutterMacOS | |||||
| - permission_handler_apple (9.3.0): | |||||
| - Flutter | |||||
| - PromisesObjC (2.4.0) | |||||
| - SDWebImage (5.16.0): | |||||
| - SDWebImage/Core (= 5.16.0) | |||||
| - SDWebImage/Core (5.16.0) | |||||
| - sqflite (0.0.3): | |||||
| - Flutter | |||||
| - FlutterMacOS | |||||
| - SwiftyGif (5.4.4) | |||||
| DEPENDENCIES: | |||||
| - 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`) | |||||
| - open_file_ios (from `.symlinks/plugins/open_file_ios/ios`) | |||||
| - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) | |||||
| - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) | |||||
| - sqflite (from `.symlinks/plugins/sqflite/darwin`) | |||||
| SPEC REPOS: | |||||
| trunk: | |||||
| - DKImagePickerController | |||||
| - DKPhotoGallery | |||||
| - Firebase | |||||
| - FirebaseCore | |||||
| - FirebaseCoreInternal | |||||
| - FirebaseInstallations | |||||
| - FirebaseMessaging | |||||
| - GoogleDataTransport | |||||
| - GoogleUtilities | |||||
| - nanopb | |||||
| - PromisesObjC | |||||
| - SDWebImage | |||||
| - SwiftyGif | |||||
| EXTERNAL SOURCES: | |||||
| 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 | |||||
| open_file_ios: | |||||
| :path: ".symlinks/plugins/open_file_ios/ios" | |||||
| path_provider_foundation: | |||||
| :path: ".symlinks/plugins/path_provider_foundation/darwin" | |||||
| permission_handler_apple: | |||||
| :path: ".symlinks/plugins/permission_handler_apple/ios" | |||||
| sqflite: | |||||
| :path: ".symlinks/plugins/sqflite/darwin" | |||||
| SPEC CHECKSUMS: | |||||
| DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac | |||||
| DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 | |||||
| file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 | |||||
| Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99 | |||||
| firebase_core: 9efc3ecf689cdbc90f13f4dc58108c83ea46b266 | |||||
| firebase_messaging: 6bf60adb4b33a848d135e16bc363fb4924f98fba | |||||
| FirebaseCore: e0510f1523bc0eb21653cac00792e1e2bd6f1771 | |||||
| FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2 | |||||
| FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414 | |||||
| FirebaseMessaging: f8a160d99c2c2e5babbbcc90c4a3e15db036aee2 | |||||
| Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 | |||||
| GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 | |||||
| GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d | |||||
| nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 | |||||
| open_file_ios: 461db5853723763573e140de3193656f91990d9e | |||||
| path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 | |||||
| permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 | |||||
| PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 | |||||
| SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6 | |||||
| sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec | |||||
| SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f | |||||
| PODFILE CHECKSUM: 1b50a4280f44a231b37f858aebc2a001225decec | |||||
| COCOAPODS: 1.16.2 | |||||
| @@ -8,12 +8,15 @@ | |||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||
| 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; | ||||
| 279E98ED2D1AC59100A23113 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 279E98EC2D1AC59100A23113 /* GoogleService-Info.plist */; }; | |||||
| 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; | 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; | ||||
| 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | ||||
| 4759CDBF48BBFAA16589BB1F /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A13A62BF8523DA69A6B7DED /* Pods_RunnerTests.framework */; }; | |||||
| 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; | ||||
| 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; | ||||
| 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; | ||||
| 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; | ||||
| EA2352549A2FAB01A3364E55 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B283BACC72FBA5C58553DEB5 /* Pods_Runner.framework */; }; | |||||
| /* End PBXBuildFile section */ | /* End PBXBuildFile section */ | ||||
| /* Begin PBXContainerItemProxy section */ | /* Begin PBXContainerItemProxy section */ | ||||
| @@ -42,9 +45,18 @@ | |||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||
| 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; | ||||
| 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | ||||
| 21E13784C9783A2D164934EC /* 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 = "<group>"; }; | |||||
| 25F9A4FC0F94DB50E78EFC87 /* 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 = "<group>"; }; | |||||
| 2718AC0B2D0EFA1300C32C95 /* RunnerRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerRelease.entitlements; sourceTree = "<group>"; }; | |||||
| 2726A2F72D0ED5B5000CFFF8 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; }; | |||||
| 279E98EC2D1AC59100A23113 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; | |||||
| 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; | 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; | ||||
| 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
| 3725BEAF3DF4B15F715B4D71 /* 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 = "<group>"; }; | |||||
| 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | ||||
| 4A13A62BF8523DA69A6B7DED /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
| 57463A968D8F475ACFBD7AF9 /* 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 = "<group>"; }; | |||||
| 74285ED74C2E6E41B754C0CE /* 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 = "<group>"; }; | |||||
| 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; | ||||
| 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; | ||||
| 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; | ||||
| @@ -55,13 +67,24 @@ | |||||
| 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | ||||
| 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||||
| 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||
| B283BACC72FBA5C58553DEB5 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
| F5909DC65099B73BB95A6244 /* 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 = "<group>"; }; | |||||
| /* End PBXFileReference section */ | /* End PBXFileReference section */ | ||||
| /* Begin PBXFrameworksBuildPhase section */ | /* Begin PBXFrameworksBuildPhase section */ | ||||
| 1E4C4A1290709861CA4805D3 /* Frameworks */ = { | |||||
| isa = PBXFrameworksBuildPhase; | |||||
| buildActionMask = 2147483647; | |||||
| files = ( | |||||
| 4759CDBF48BBFAA16589BB1F /* Pods_RunnerTests.framework in Frameworks */, | |||||
| ); | |||||
| runOnlyForDeploymentPostprocessing = 0; | |||||
| }; | |||||
| 97C146EB1CF9000F007C117D /* Frameworks */ = { | 97C146EB1CF9000F007C117D /* Frameworks */ = { | ||||
| isa = PBXFrameworksBuildPhase; | isa = PBXFrameworksBuildPhase; | ||||
| buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
| files = ( | files = ( | ||||
| EA2352549A2FAB01A3364E55 /* Pods_Runner.framework in Frameworks */, | |||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| }; | }; | ||||
| @@ -90,10 +113,13 @@ | |||||
| 97C146E51CF9000F007C117D = { | 97C146E51CF9000F007C117D = { | ||||
| isa = PBXGroup; | isa = PBXGroup; | ||||
| children = ( | children = ( | ||||
| 279E98EC2D1AC59100A23113 /* GoogleService-Info.plist */, | |||||
| 9740EEB11CF90186004384FC /* Flutter */, | 9740EEB11CF90186004384FC /* Flutter */, | ||||
| 97C146F01CF9000F007C117D /* Runner */, | 97C146F01CF9000F007C117D /* Runner */, | ||||
| 97C146EF1CF9000F007C117D /* Products */, | 97C146EF1CF9000F007C117D /* Products */, | ||||
| 331C8082294A63A400263BE5 /* RunnerTests */, | 331C8082294A63A400263BE5 /* RunnerTests */, | ||||
| F8BB147E565F68927290DB18 /* Pods */, | |||||
| CDF87532872B2723CF8E0440 /* Frameworks */, | |||||
| ); | ); | ||||
| sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
| }; | }; | ||||
| @@ -109,6 +135,8 @@ | |||||
| 97C146F01CF9000F007C117D /* Runner */ = { | 97C146F01CF9000F007C117D /* Runner */ = { | ||||
| isa = PBXGroup; | isa = PBXGroup; | ||||
| children = ( | children = ( | ||||
| 2718AC0B2D0EFA1300C32C95 /* RunnerRelease.entitlements */, | |||||
| 2726A2F72D0ED5B5000CFFF8 /* Runner.entitlements */, | |||||
| 97C146FA1CF9000F007C117D /* Main.storyboard */, | 97C146FA1CF9000F007C117D /* Main.storyboard */, | ||||
| 97C146FD1CF9000F007C117D /* Assets.xcassets */, | 97C146FD1CF9000F007C117D /* Assets.xcassets */, | ||||
| 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, | ||||
| @@ -121,6 +149,28 @@ | |||||
| path = Runner; | path = Runner; | ||||
| sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
| }; | }; | ||||
| CDF87532872B2723CF8E0440 /* Frameworks */ = { | |||||
| isa = PBXGroup; | |||||
| children = ( | |||||
| B283BACC72FBA5C58553DEB5 /* Pods_Runner.framework */, | |||||
| 4A13A62BF8523DA69A6B7DED /* Pods_RunnerTests.framework */, | |||||
| ); | |||||
| name = Frameworks; | |||||
| sourceTree = "<group>"; | |||||
| }; | |||||
| F8BB147E565F68927290DB18 /* Pods */ = { | |||||
| isa = PBXGroup; | |||||
| children = ( | |||||
| F5909DC65099B73BB95A6244 /* Pods-Runner.debug.xcconfig */, | |||||
| 25F9A4FC0F94DB50E78EFC87 /* Pods-Runner.release.xcconfig */, | |||||
| 57463A968D8F475ACFBD7AF9 /* Pods-Runner.profile.xcconfig */, | |||||
| 21E13784C9783A2D164934EC /* Pods-RunnerTests.debug.xcconfig */, | |||||
| 74285ED74C2E6E41B754C0CE /* Pods-RunnerTests.release.xcconfig */, | |||||
| 3725BEAF3DF4B15F715B4D71 /* Pods-RunnerTests.profile.xcconfig */, | |||||
| ); | |||||
| path = Pods; | |||||
| sourceTree = "<group>"; | |||||
| }; | |||||
| /* End PBXGroup section */ | /* End PBXGroup section */ | ||||
| /* Begin PBXNativeTarget section */ | /* Begin PBXNativeTarget section */ | ||||
| @@ -128,8 +178,10 @@ | |||||
| isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
| buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; | buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; | ||||
| buildPhases = ( | buildPhases = ( | ||||
| 67BC60F4D4382D10418A3A58 /* [CP] Check Pods Manifest.lock */, | |||||
| 331C807D294A63A400263BE5 /* Sources */, | 331C807D294A63A400263BE5 /* Sources */, | ||||
| 331C807F294A63A400263BE5 /* Resources */, | 331C807F294A63A400263BE5 /* Resources */, | ||||
| 1E4C4A1290709861CA4805D3 /* Frameworks */, | |||||
| ); | ); | ||||
| buildRules = ( | buildRules = ( | ||||
| ); | ); | ||||
| @@ -145,12 +197,15 @@ | |||||
| isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
| buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; | ||||
| buildPhases = ( | buildPhases = ( | ||||
| 92182B7D1D93B3076E45A1F8 /* [CP] Check Pods Manifest.lock */, | |||||
| 9740EEB61CF901F6004384FC /* Run Script */, | 9740EEB61CF901F6004384FC /* Run Script */, | ||||
| 97C146EA1CF9000F007C117D /* Sources */, | 97C146EA1CF9000F007C117D /* Sources */, | ||||
| 97C146EB1CF9000F007C117D /* Frameworks */, | 97C146EB1CF9000F007C117D /* Frameworks */, | ||||
| 97C146EC1CF9000F007C117D /* Resources */, | 97C146EC1CF9000F007C117D /* Resources */, | ||||
| 9705A1C41CF9048500538489 /* Embed Frameworks */, | 9705A1C41CF9048500538489 /* Embed Frameworks */, | ||||
| 3B06AD1E1E4923F5004D2608 /* Thin Binary */, | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, | ||||
| 30C9A5270602859A8E6C794E /* [CP] Embed Pods Frameworks */, | |||||
| 226F675192C22C6623CA1FCA /* [CP] Copy Pods Resources */, | |||||
| ); | ); | ||||
| buildRules = ( | buildRules = ( | ||||
| ); | ); | ||||
| @@ -190,6 +245,8 @@ | |||||
| Base, | Base, | ||||
| ); | ); | ||||
| mainGroup = 97C146E51CF9000F007C117D; | mainGroup = 97C146E51CF9000F007C117D; | ||||
| packageReferences = ( | |||||
| ); | |||||
| productRefGroup = 97C146EF1CF9000F007C117D /* Products */; | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; | ||||
| projectDirPath = ""; | projectDirPath = ""; | ||||
| projectRoot = ""; | projectRoot = ""; | ||||
| @@ -214,6 +271,7 @@ | |||||
| files = ( | files = ( | ||||
| 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, | ||||
| 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, | ||||
| 279E98ED2D1AC59100A23113 /* GoogleService-Info.plist in Resources */, | |||||
| 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, | ||||
| 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, | ||||
| ); | ); | ||||
| @@ -222,6 +280,40 @@ | |||||
| /* End PBXResourcesBuildPhase section */ | /* End PBXResourcesBuildPhase section */ | ||||
| /* Begin PBXShellScriptBuildPhase section */ | /* Begin PBXShellScriptBuildPhase section */ | ||||
| 226F675192C22C6623CA1FCA /* [CP] Copy Pods Resources */ = { | |||||
| isa = PBXShellScriptBuildPhase; | |||||
| buildActionMask = 2147483647; | |||||
| files = ( | |||||
| ); | |||||
| inputFileListPaths = ( | |||||
| "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", | |||||
| ); | |||||
| 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 = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; | |||||
| showEnvVarsInLog = 0; | |||||
| }; | |||||
| 30C9A5270602859A8E6C794E /* [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; | |||||
| }; | |||||
| 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { | ||||
| isa = PBXShellScriptBuildPhase; | isa = PBXShellScriptBuildPhase; | ||||
| alwaysOutOfDate = 1; | alwaysOutOfDate = 1; | ||||
| @@ -238,6 +330,50 @@ | |||||
| shellPath = /bin/sh; | shellPath = /bin/sh; | ||||
| shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; | ||||
| }; | }; | ||||
| 67BC60F4D4382D10418A3A58 /* [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; | |||||
| }; | |||||
| 92182B7D1D93B3076E45A1F8 /* [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 */ = { | 9740EEB61CF901F6004384FC /* Run Script */ = { | ||||
| isa = PBXShellScriptBuildPhase; | isa = PBXShellScriptBuildPhase; | ||||
| alwaysOutOfDate = 1; | alwaysOutOfDate = 1; | ||||
| @@ -361,15 +497,20 @@ | |||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CLANG_ENABLE_MODULES = YES; | CLANG_ENABLE_MODULES = YES; | ||||
| CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | |||||
| CODE_SIGN_IDENTITY = "Apple Development"; | |||||
| CODE_SIGN_STYLE = Automatic; | |||||
| CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||||
| DEVELOPMENT_TEAM = FE8CDVE4RJ; | |||||
| ENABLE_BITCODE = NO; | ENABLE_BITCODE = NO; | ||||
| INFOPLIST_FILE = Runner/Info.plist; | INFOPLIST_FILE = Runner/Info.plist; | ||||
| LD_RUNPATH_SEARCH_PATHS = ( | LD_RUNPATH_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "@executable_path/Frameworks", | "@executable_path/Frameworks", | ||||
| ); | ); | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| PROVISIONING_PROFILE_SPECIFIER = ""; | |||||
| SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||||
| SWIFT_VERSION = 5.0; | SWIFT_VERSION = 5.0; | ||||
| VERSIONING_SYSTEM = "apple-generic"; | VERSIONING_SYSTEM = "apple-generic"; | ||||
| @@ -378,13 +519,14 @@ | |||||
| }; | }; | ||||
| 331C8088294A63A400263BE5 /* Debug */ = { | 331C8088294A63A400263BE5 /* Debug */ = { | ||||
| isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
| baseConfigurationReference = 21E13784C9783A2D164934EC /* Pods-RunnerTests.debug.xcconfig */; | |||||
| buildSettings = { | buildSettings = { | ||||
| BUNDLE_LOADER = "$(TEST_HOST)"; | BUNDLE_LOADER = "$(TEST_HOST)"; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 1; | CURRENT_PROJECT_VERSION = 1; | ||||
| GENERATE_INFOPLIST_FILE = YES; | GENERATE_INFOPLIST_FILE = YES; | ||||
| MARKETING_VERSION = 1.0; | MARKETING_VERSION = 1.0; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; | ||||
| SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||||
| @@ -395,13 +537,14 @@ | |||||
| }; | }; | ||||
| 331C8089294A63A400263BE5 /* Release */ = { | 331C8089294A63A400263BE5 /* Release */ = { | ||||
| isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
| baseConfigurationReference = 74285ED74C2E6E41B754C0CE /* Pods-RunnerTests.release.xcconfig */; | |||||
| buildSettings = { | buildSettings = { | ||||
| BUNDLE_LOADER = "$(TEST_HOST)"; | BUNDLE_LOADER = "$(TEST_HOST)"; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 1; | CURRENT_PROJECT_VERSION = 1; | ||||
| GENERATE_INFOPLIST_FILE = YES; | GENERATE_INFOPLIST_FILE = YES; | ||||
| MARKETING_VERSION = 1.0; | MARKETING_VERSION = 1.0; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| SWIFT_VERSION = 5.0; | SWIFT_VERSION = 5.0; | ||||
| TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||||
| @@ -410,13 +553,14 @@ | |||||
| }; | }; | ||||
| 331C808A294A63A400263BE5 /* Profile */ = { | 331C808A294A63A400263BE5 /* Profile */ = { | ||||
| isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
| baseConfigurationReference = 3725BEAF3DF4B15F715B4D71 /* Pods-RunnerTests.profile.xcconfig */; | |||||
| buildSettings = { | buildSettings = { | ||||
| BUNDLE_LOADER = "$(TEST_HOST)"; | BUNDLE_LOADER = "$(TEST_HOST)"; | ||||
| CODE_SIGN_STYLE = Automatic; | CODE_SIGN_STYLE = Automatic; | ||||
| CURRENT_PROJECT_VERSION = 1; | CURRENT_PROJECT_VERSION = 1; | ||||
| GENERATE_INFOPLIST_FILE = YES; | GENERATE_INFOPLIST_FILE = YES; | ||||
| MARKETING_VERSION = 1.0; | MARKETING_VERSION = 1.0; | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| SWIFT_VERSION = 5.0; | SWIFT_VERSION = 5.0; | ||||
| TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||||
| @@ -540,15 +684,20 @@ | |||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CLANG_ENABLE_MODULES = YES; | CLANG_ENABLE_MODULES = YES; | ||||
| CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | |||||
| CODE_SIGN_IDENTITY = "Apple Development"; | |||||
| CODE_SIGN_STYLE = Automatic; | |||||
| CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||||
| DEVELOPMENT_TEAM = FE8CDVE4RJ; | |||||
| ENABLE_BITCODE = NO; | ENABLE_BITCODE = NO; | ||||
| INFOPLIST_FILE = Runner/Info.plist; | INFOPLIST_FILE = Runner/Info.plist; | ||||
| LD_RUNPATH_SEARCH_PATHS = ( | LD_RUNPATH_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "@executable_path/Frameworks", | "@executable_path/Frameworks", | ||||
| ); | ); | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| PROVISIONING_PROFILE_SPECIFIER = ""; | |||||
| SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||||
| SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||||
| SWIFT_VERSION = 5.0; | SWIFT_VERSION = 5.0; | ||||
| @@ -562,15 +711,20 @@ | |||||
| buildSettings = { | buildSettings = { | ||||
| ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||
| CLANG_ENABLE_MODULES = YES; | CLANG_ENABLE_MODULES = YES; | ||||
| CODE_SIGN_ENTITLEMENTS = Runner/RunnerRelease.entitlements; | |||||
| CODE_SIGN_IDENTITY = "Apple Development"; | |||||
| CODE_SIGN_STYLE = Automatic; | |||||
| CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||||
| DEVELOPMENT_TEAM = FE8CDVE4RJ; | |||||
| ENABLE_BITCODE = NO; | ENABLE_BITCODE = NO; | ||||
| INFOPLIST_FILE = Runner/Info.plist; | INFOPLIST_FILE = Runner/Info.plist; | ||||
| LD_RUNPATH_SEARCH_PATHS = ( | LD_RUNPATH_SEARCH_PATHS = ( | ||||
| "$(inherited)", | "$(inherited)", | ||||
| "@executable_path/Frameworks", | "@executable_path/Frameworks", | ||||
| ); | ); | ||||
| PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz; | |||||
| PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban; | |||||
| PRODUCT_NAME = "$(TARGET_NAME)"; | PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| PROVISIONING_PROFILE_SPECIFIER = ""; | |||||
| SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||||
| SWIFT_VERSION = 5.0; | SWIFT_VERSION = 5.0; | ||||
| VERSIONING_SYSTEM = "apple-generic"; | VERSIONING_SYSTEM = "apple-generic"; | ||||
| @@ -0,0 +1,123 @@ | |||||
| { | |||||
| "originHash" : "c63c63846d9c539229e96de38d6af51417e28c0ee9a0bc48bd0f0f19d923c329", | |||||
| "pins" : [ | |||||
| { | |||||
| "identity" : "abseil-cpp-binary", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/abseil-cpp-binary.git", | |||||
| "state" : { | |||||
| "revision" : "194a6706acbd25e4ef639bcaddea16e8758a3e27", | |||||
| "version" : "1.2024011602.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "app-check", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/app-check.git", | |||||
| "state" : { | |||||
| "revision" : "61b85103a1aeed8218f17c794687781505fbbef5", | |||||
| "version" : "11.2.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "firebase-ios-sdk", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/firebase/firebase-ios-sdk", | |||||
| "state" : { | |||||
| "revision" : "2e02253fd1ce99145bcbf1bb367ccf61bd0ca46b", | |||||
| "version" : "11.6.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "googleappmeasurement", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/GoogleAppMeasurement.git", | |||||
| "state" : { | |||||
| "revision" : "4f234bcbdae841d7015258fbbf8e7743a39b8200", | |||||
| "version" : "11.4.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "googledatatransport", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/GoogleDataTransport.git", | |||||
| "state" : { | |||||
| "revision" : "617af071af9aa1d6a091d59a202910ac482128f9", | |||||
| "version" : "10.1.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "googleutilities", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/GoogleUtilities.git", | |||||
| "state" : { | |||||
| "revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb", | |||||
| "version" : "8.0.2" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "grpc-binary", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/grpc-binary.git", | |||||
| "state" : { | |||||
| "revision" : "f56d8fc3162de9a498377c7b6cea43431f4f5083", | |||||
| "version" : "1.65.1" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "gtm-session-fetcher", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/gtm-session-fetcher.git", | |||||
| "state" : { | |||||
| "revision" : "5cfe5f090c982de9c58605d2a82a4fc77b774fbd", | |||||
| "version" : "4.1.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "interop-ios-for-google-sdks", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/interop-ios-for-google-sdks.git", | |||||
| "state" : { | |||||
| "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", | |||||
| "version" : "100.0.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "leveldb", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/firebase/leveldb.git", | |||||
| "state" : { | |||||
| "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", | |||||
| "version" : "1.22.5" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "nanopb", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/firebase/nanopb.git", | |||||
| "state" : { | |||||
| "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", | |||||
| "version" : "2.30910.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "promises", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/google/promises.git", | |||||
| "state" : { | |||||
| "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", | |||||
| "version" : "2.4.0" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "identity" : "swift-protobuf", | |||||
| "kind" : "remoteSourceControl", | |||||
| "location" : "https://github.com/apple/swift-protobuf.git", | |||||
| "state" : { | |||||
| "revision" : "ebc7251dd5b37f627c93698e4374084d98409633", | |||||
| "version" : "1.28.2" | |||||
| } | |||||
| } | |||||
| ], | |||||
| "version" : 3 | |||||
| } | |||||
| @@ -4,4 +4,7 @@ | |||||
| <FileRef | <FileRef | ||||
| location = "group:Runner.xcodeproj"> | location = "group:Runner.xcodeproj"> | ||||
| </FileRef> | </FileRef> | ||||
| <FileRef | |||||
| location = "group:Pods/Pods.xcodeproj"> | |||||
| </FileRef> | |||||
| </Workspace> | </Workspace> | ||||
| @@ -1,7 +1,5 @@ | |||||
| import Flutter | |||||
| import UIKit | import UIKit | ||||
| import Firebase | |||||
| import FirebaseMessaging | |||||
| import Flutter | |||||
| @main | @main | ||||
| @objc class AppDelegate: FlutterAppDelegate { | @objc class AppDelegate: FlutterAppDelegate { | ||||
| @@ -9,55 +7,7 @@ import FirebaseMessaging | |||||
| _ application: UIApplication, | _ application: UIApplication, | ||||
| didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? | ||||
| ) -> Bool { | ) -> Bool { | ||||
| // مقداردهی Firebase | |||||
| FirebaseApp.configure() | |||||
| // ثبت Plugin های Flutter | |||||
| GeneratedPluginRegistrant.register(with: self) | GeneratedPluginRegistrant.register(with: self) | ||||
| // تنظیمات Notification Center | |||||
| UNUserNotificationCenter.current().delegate = self | |||||
| Messaging.messaging().delegate = self | |||||
| // درخواست مجوز نوتیفیکیشن | |||||
| UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in | |||||
| if let error = error { | |||||
| print("Error requesting notification permissions: \(error)") | |||||
| } | |||||
| print("Permission granted: \(granted)") | |||||
| } | |||||
| // ثبت دستگاه برای دریافت Remote Notifications | |||||
| application.registerForRemoteNotifications() | |||||
| return super.application(application, didFinishLaunchingWithOptions: launchOptions) | return super.application(application, didFinishLaunchingWithOptions: launchOptions) | ||||
| } | } | ||||
| // متد دریافت APNs Token و ارسال آن به Firebase | |||||
| override func application( | |||||
| _ application: UIApplication, | |||||
| didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data | |||||
| ) { | |||||
| Messaging.messaging().apnsToken = deviceToken | |||||
| } | |||||
| } | |||||
| // افزودن پروتکلهای UNUserNotificationCenterDelegate و MessagingDelegate | |||||
| extension AppDelegate: UNUserNotificationCenterDelegate, MessagingDelegate { | |||||
| // مدیریت دریافت توکن Firebase | |||||
| func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { | |||||
| print("Firebase FCM Token: \(fcmToken ?? "No Token")") | |||||
| // اگر نیاز به ارسال توکن به سرور دارید، اینجا انجام دهید. | |||||
| } | |||||
| // مدیریت پیامهای دریافتشده هنگام باز بودن اپلیکیشن | |||||
| func userNotificationCenter( | |||||
| _ center: UNUserNotificationCenter, | |||||
| willPresent notification: UNNotification, | |||||
| withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void | |||||
| ) { | |||||
| let userInfo = notification.request.content.userInfo | |||||
| print("Foreground Notification Received: \(userInfo)") | |||||
| completionHandler([.banner, .sound, .badge]) | |||||
| } | |||||
| } | } | ||||
| @@ -9,7 +9,7 @@ | |||||
| <key>PLIST_VERSION</key> | <key>PLIST_VERSION</key> | ||||
| <string>1</string> | <string>1</string> | ||||
| <key>BUNDLE_ID</key> | <key>BUNDLE_ID</key> | ||||
| <string>com.example.qadirneyriz</string> | |||||
| <string>com.nghsco.mizban</string> | |||||
| <key>PROJECT_ID</key> | <key>PROJECT_ID</key> | ||||
| <string>folad-neiriz</string> | <string>folad-neiriz</string> | ||||
| <key>STORAGE_BUCKET</key> | <key>STORAGE_BUCKET</key> | ||||
| @@ -25,6 +25,6 @@ | |||||
| <key>IS_SIGNIN_ENABLED</key> | <key>IS_SIGNIN_ENABLED</key> | ||||
| <true></true> | <true></true> | ||||
| <key>GOOGLE_APP_ID</key> | <key>GOOGLE_APP_ID</key> | ||||
| <string>1:392489806594:ios:feeba2107eb852ec3b301b</string> | |||||
| <string>1:392489806594:ios:b93d93374e9671ee3b301b</string> | |||||
| </dict> | </dict> | ||||
| </plist> | </plist> | ||||
| @@ -2,6 +2,8 @@ | |||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | <plist version="1.0"> | ||||
| <dict> | <dict> | ||||
| <key>CADisableMinimumFrameDurationOnPhone</key> | |||||
| <true/> | |||||
| <key>CFBundleDevelopmentRegion</key> | <key>CFBundleDevelopmentRegion</key> | ||||
| <string>$(DEVELOPMENT_LANGUAGE)</string> | <string>$(DEVELOPMENT_LANGUAGE)</string> | ||||
| <key>CFBundleDisplayName</key> | <key>CFBundleDisplayName</key> | ||||
| @@ -24,6 +26,26 @@ | |||||
| <string>$(FLUTTER_BUILD_NUMBER)</string> | <string>$(FLUTTER_BUILD_NUMBER)</string> | ||||
| <key>LSRequiresIPhoneOS</key> | <key>LSRequiresIPhoneOS</key> | ||||
| <true/> | <true/> | ||||
| <key>NSAppTransportSecurity</key> | |||||
| <dict> | |||||
| <key>NSAllowsLocalNetworking</key> | |||||
| <true/> | |||||
| </dict> | |||||
| <key>NSPhotoLibraryUsageDescription</key> | |||||
| <string>We need access to your photos to allow you to upload images.</string> | |||||
| <key>UIApplicationSupportsIndirectInputEvents</key> | |||||
| <true/> | |||||
| <key>UIBackgroundModes</key> | |||||
| <array> | |||||
| <string>remote-notification</string> | |||||
| <string>processing</string> | |||||
| <string>fetch</string> | |||||
| </array> | |||||
| <key>BGTaskSchedulerPermittedIdentifiers</key> | |||||
| <array> | |||||
| <string>com.nghsco.mizban.refresh</string> | |||||
| <string>com.nghsco.mizban.processing</string> | |||||
| </array> | |||||
| <key>UILaunchStoryboardName</key> | <key>UILaunchStoryboardName</key> | ||||
| <string>LaunchScreen</string> | <string>LaunchScreen</string> | ||||
| <key>UIMainStoryboardFile</key> | <key>UIMainStoryboardFile</key> | ||||
| @@ -41,9 +63,7 @@ | |||||
| <string>UIInterfaceOrientationLandscapeLeft</string> | <string>UIInterfaceOrientationLandscapeLeft</string> | ||||
| <string>UIInterfaceOrientationLandscapeRight</string> | <string>UIInterfaceOrientationLandscapeRight</string> | ||||
| </array> | </array> | ||||
| <key>CADisableMinimumFrameDurationOnPhone</key> | |||||
| <true/> | |||||
| <key>UIApplicationSupportsIndirectInputEvents</key> | |||||
| <true/> | |||||
| <key>FirebaseMessagingAutoInitEnabled</key> | |||||
| <string>NO</string> | |||||
| </dict> | </dict> | ||||
| </plist> | </plist> | ||||
| @@ -0,0 +1,8 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||||
| <plist version="1.0"> | |||||
| <dict> | |||||
| <key>aps-environment</key> | |||||
| <string>development</string> | |||||
| </dict> | |||||
| </plist> | |||||
| @@ -0,0 +1,8 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||||
| <plist version="1.0"> | |||||
| <dict> | |||||
| <key>aps-environment</key> | |||||
| <string>development</string> | |||||
| </dict> | |||||
| </plist> | |||||
| @@ -0,0 +1,68 @@ | |||||
| // File generated by FlutterFire CLI. | |||||
| // ignore_for_file: type=lint | |||||
| import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; | |||||
| import 'package:flutter/foundation.dart' | |||||
| show defaultTargetPlatform, kIsWeb, TargetPlatform; | |||||
| /// Default [FirebaseOptions] for use with your Firebase apps. | |||||
| /// | |||||
| /// Example: | |||||
| /// ```dart | |||||
| /// import 'firebase_options.dart'; | |||||
| /// // ... | |||||
| /// await Firebase.initializeApp( | |||||
| /// options: DefaultFirebaseOptions.currentPlatform, | |||||
| /// ); | |||||
| /// ``` | |||||
| class DefaultFirebaseOptions { | |||||
| static FirebaseOptions get currentPlatform { | |||||
| if (kIsWeb) { | |||||
| throw UnsupportedError( | |||||
| 'DefaultFirebaseOptions have not been configured for web - ' | |||||
| 'you can reconfigure this by running the FlutterFire CLI again.', | |||||
| ); | |||||
| } | |||||
| switch (defaultTargetPlatform) { | |||||
| case TargetPlatform.android: | |||||
| return android; | |||||
| case TargetPlatform.iOS: | |||||
| return ios; | |||||
| case TargetPlatform.macOS: | |||||
| throw UnsupportedError( | |||||
| 'DefaultFirebaseOptions have not been configured for macos - ' | |||||
| 'you can reconfigure this by running the FlutterFire CLI again.', | |||||
| ); | |||||
| case TargetPlatform.windows: | |||||
| throw UnsupportedError( | |||||
| 'DefaultFirebaseOptions have not been configured for windows - ' | |||||
| 'you can reconfigure this by running the FlutterFire CLI again.', | |||||
| ); | |||||
| case TargetPlatform.linux: | |||||
| throw UnsupportedError( | |||||
| 'DefaultFirebaseOptions have not been configured for linux - ' | |||||
| 'you can reconfigure this by running the FlutterFire CLI again.', | |||||
| ); | |||||
| default: | |||||
| throw UnsupportedError( | |||||
| 'DefaultFirebaseOptions are not supported for this platform.', | |||||
| ); | |||||
| } | |||||
| } | |||||
| static const FirebaseOptions android = FirebaseOptions( | |||||
| apiKey: 'AIzaSyAuDK456j4fFdNqrzQRDYyWRcB0VkQ2bCY', | |||||
| appId: '1:392489806594:android:6944e598f4a3f5313b301b', | |||||
| messagingSenderId: '392489806594', | |||||
| projectId: 'folad-neiriz', | |||||
| storageBucket: 'folad-neiriz.firebasestorage.app', | |||||
| ); | |||||
| static const FirebaseOptions ios = FirebaseOptions( | |||||
| apiKey: 'AIzaSyDmiLNq_t5wyqDE2VW1wGyt6kArchRvLAQ', | |||||
| appId: '1:392489806594:ios:b93d93374e9671ee3b301b', | |||||
| messagingSenderId: '392489806594', | |||||
| projectId: 'folad-neiriz', | |||||
| storageBucket: 'folad-neiriz.firebasestorage.app', | |||||
| iosBundleId: 'com.nghsco.mizban', | |||||
| ); | |||||
| } | |||||
| @@ -122,5 +122,5 @@ | |||||
| "suretodelelteaccount": "آیا اطمینان دارید که میخواهید حساب کاربری خود را حذف کنید؟", | "suretodelelteaccount": "آیا اطمینان دارید که میخواهید حساب کاربری خود را حذف کنید؟", | ||||
| "actioncantundo": "این عمل قابل بازگشت نیست!", | "actioncantundo": "این عمل قابل بازگشت نیست!", | ||||
| "areusuretodeletfile":"آیا اطمینان دارید که میخواهید این فایل را حذف کنید؟", | "areusuretodeletfile":"آیا اطمینان دارید که میخواهید این فایل را حذف کنید؟", | ||||
| "textaboutus":"نرمافزار مدیریت جلسات و ملاقاتهای “میزبان” با هدف تسهیل و بهینهسازی فرآیندهای برگزاری جلسات سازمانی و شخصی جناب آقای دکتر محسن مصطفی پور طراحی و توسعه یافته تا ابزاری کارآمد و نوآورانه برای تحقق بیشتر اسم رمز همدلی در مجموعه معظم فولاد غدیر نی ریز باشد . این نرم افزار با حمایت ، همت و پشتیبانی بیدریغ مدیریت محترم عامل ( دکتر محسن مصطفی پور ) ایجاد ، توسعه و راه اندازی شده است." | |||||
| "textaboutus":"نرمافزار مدیریت جلسات و ملاقاتهای “میزبان” با هدف تسهیل و بهینهسازی فرآیندهای برگزاری جلسات شخصی جناب آقای دکتر محسن مصطفی پور طراحی و توسعه یافته تا ابزاری کارآمد و نوآورانه باشد. این نرم افزار با حمایت ، همت و پشتیبانی بیدریغ دکتر محسن مصطفی پور ایجاد ، توسعه و راه اندازی شده است." | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import 'package:flutter_localizations/flutter_localizations.dart'; | |||||
| import 'package:hive_flutter/hive_flutter.dart'; | import 'package:hive_flutter/hive_flutter.dart'; | ||||
| import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
| import 'package:qadirneyriz/config/config.dart'; | import 'package:qadirneyriz/config/config.dart'; | ||||
| import 'package:qadirneyriz/firebase_options.dart'; | |||||
| import 'package:qadirneyriz/global/global_state/global_state.dart'; | import 'package:qadirneyriz/global/global_state/global_state.dart'; | ||||
| import 'package:qadirneyriz/router/router.dart'; | import 'package:qadirneyriz/router/router.dart'; | ||||
| import 'package:flutter_gen/gen_l10n/app_localizations.dart'; | import 'package:flutter_gen/gen_l10n/app_localizations.dart'; | ||||
| @@ -18,9 +19,14 @@ import 'package:qadirneyriz/setting/setting.dart'; | |||||
| final FirebaseMessaging messaging = FirebaseMessaging.instance; | final FirebaseMessaging messaging = FirebaseMessaging.instance; | ||||
| Future<void> initializeApp() async { | Future<void> initializeApp() async { | ||||
| await Firebase.initializeApp(); | |||||
| await Hive.initFlutter(); | await Hive.initFlutter(); | ||||
| await Firebase.initializeApp( | |||||
| options: DefaultFirebaseOptions.currentPlatform, | |||||
| ); | |||||
| await setting.userLocalDb.openBox(); | await setting.userLocalDb.openBox(); | ||||
| // اجرای Firebase و تنظیمات نوتیفیکیشن فقط در اندروید | |||||
| await requestNotificationPermission(); | await requestNotificationPermission(); | ||||
| await getToken(); | await getToken(); | ||||
| setupMessageListener(); | setupMessageListener(); | ||||
| @@ -45,15 +51,13 @@ Future<void> requestNotificationPermission() async { | |||||
| } | } | ||||
| Future<void> getToken() async { | Future<void> getToken() async { | ||||
| String? token = await messaging.getToken(); | |||||
| print("Device Token: $token"); | |||||
| // You can send the token to your server here if needed | |||||
| await messaging.getToken(); | |||||
| } | } | ||||
| void setupMessageListener() { | void setupMessageListener() { | ||||
| FirebaseMessaging.onMessage.listen((RemoteMessage message) { | FirebaseMessaging.onMessage.listen((RemoteMessage message) { | ||||
| print('Message received: ${message.notification?.title}'); | |||||
| print('Message body: ${message.notification?.body}'); | |||||
| // print('Message received: ${message.notification?.title}'); | |||||
| // print('Message body: ${message.notification?.body}'); | |||||
| // You can use a Dialog or Toast to display the message here | // You can use a Dialog or Toast to display the message here | ||||
| }); | }); | ||||
| } | } | ||||
| @@ -102,31 +106,42 @@ class _MyAppState extends State<MyApp> { | |||||
| Widget build(BuildContext context) { | Widget build(BuildContext context) { | ||||
| return Consumer<AuthState>( | return Consumer<AuthState>( | ||||
| builder: (context, value, child) { | builder: (context, value, child) { | ||||
| return MaterialApp.router( | |||||
| theme: ThemeData( | |||||
| colorScheme: ColorScheme.light(primary: config.ui.mainGreen), | |||||
| buttonTheme: ButtonThemeData( | |||||
| colorScheme: ColorScheme.light(primary: Colors.green), | |||||
| return GestureDetector( | |||||
| behavior: HitTestBehavior.opaque, | |||||
| onTap: () { | |||||
| FocusScopeNode currentFocus = FocusScope.of(context); | |||||
| if (!currentFocus.hasPrimaryFocus && | |||||
| currentFocus.focusedChild != null) { | |||||
| FocusManager.instance.primaryFocus?.unfocus(); | |||||
| } | |||||
| }, | |||||
| child: MaterialApp.router( | |||||
| theme: ThemeData( | |||||
| colorScheme: ColorScheme.light(primary: config.ui.mainGreen), | |||||
| buttonTheme: ButtonThemeData( | |||||
| colorScheme: ColorScheme.light(primary: Colors.green), | |||||
| ), | |||||
| useMaterial3: true, | |||||
| fontFamily: 'Font', | |||||
| scaffoldBackgroundColor: Colors.white, | |||||
| ), | ), | ||||
| useMaterial3: true, | |||||
| fontFamily: 'Font', | |||||
| scaffoldBackgroundColor: Colors.white, | |||||
| debugShowCheckedModeBanner: false, | |||||
| routerDelegate: router.routerDelegate, | |||||
| routeInformationParser: router.routeInformationParser, | |||||
| routeInformationProvider: router.routeInformationProvider, | |||||
| localizationsDelegates: const [ | |||||
| AppLocalizations.delegate, | |||||
| GlobalMaterialLocalizations.delegate, | |||||
| GlobalWidgetsLocalizations.delegate, | |||||
| GlobalCupertinoLocalizations.delegate, | |||||
| ], | |||||
| locale: Locale(value.language), | |||||
| supportedLocales: const [ | |||||
| Locale('en'), | |||||
| Locale('fa'), | |||||
| ], | |||||
| ), | ), | ||||
| debugShowCheckedModeBanner: false, | |||||
| routerDelegate: router.routerDelegate, | |||||
| routeInformationParser: router.routeInformationParser, | |||||
| routeInformationProvider: router.routeInformationProvider, | |||||
| localizationsDelegates: const [ | |||||
| AppLocalizations.delegate, | |||||
| GlobalMaterialLocalizations.delegate, | |||||
| GlobalWidgetsLocalizations.delegate, | |||||
| GlobalCupertinoLocalizations.delegate, | |||||
| ], | |||||
| locale: Locale(value.language), | |||||
| supportedLocales: const [ | |||||
| Locale('en'), | |||||
| Locale('fa'), | |||||
| ], | |||||
| ); | ); | ||||
| }, | }, | ||||
| ); | ); | ||||
| @@ -152,9 +152,9 @@ class _LoginScreenState extends State<LoginScreen> { | |||||
| isError: true, | isError: true, | ||||
| context, | context, | ||||
| ); | ); | ||||
| } else { String? token = await messaging.getToken(); | |||||
| } else { | |||||
| final status = await state.login( | final status = await state.login( | ||||
| fcm_token: token??'', | |||||
| mobile: phoneController.text, | mobile: phoneController.text, | ||||
| password: passwordController.text); | password: passwordController.text); | ||||
| if (status == Status.ready) { | if (status == Status.ready) { | ||||
| @@ -132,6 +132,7 @@ class _OtpScreenState extends State<OtpScreen> { | |||||
| }, | }, | ||||
| ), | ), | ||||
| ), | ), | ||||
| ], | ], | ||||
| ), | ), | ||||
| ], | ], | ||||
| @@ -183,10 +184,9 @@ class _OtpScreenState extends State<OtpScreen> { | |||||
| } | } | ||||
| void otpCheckCode(onSubmitted, AuthState value) async { | void otpCheckCode(onSubmitted, AuthState value) async { | ||||
| String? token = await messaging.getToken(); | |||||
| if (onSubmitted.length == 4) { | if (onSubmitted.length == 4) { | ||||
| final status = await value.login( | |||||
| mobile: widget.phoneNumber, otp: onSubmitted, fcm_token: token ?? ''); | |||||
| final status = | |||||
| await value.login(mobile: widget.phoneNumber, otp: onSubmitted); | |||||
| if (status == Status.ready) { | if (status == Status.ready) { | ||||
| context.goNamed('navigate', pathParameters: {'tab': '0'}); | context.goNamed('navigate', pathParameters: {'tab': '0'}); | ||||
| } else if (status == Status.error) { | } else if (status == Status.error) { | ||||
| @@ -25,13 +25,13 @@ class AuthState extends ChangeNotifier { | |||||
| {required String mobile, | {required String mobile, | ||||
| String? password, | String? password, | ||||
| String? otp, | String? otp, | ||||
| required String fcm_token}) async { | |||||
| }) async { | |||||
| assert(password != null || otp != null); | assert(password != null || otp != null); | ||||
| statusLogin = Status.loading; | statusLogin = Status.loading; | ||||
| notifyListeners(); | notifyListeners(); | ||||
| try { | try { | ||||
| final result = await authServises.loginApi( | final result = await authServises.loginApi( | ||||
| mobile: mobile, password: password, otp: otp, fcm_token: fcm_token); | |||||
| mobile: mobile, password: password, otp: otp, ); | |||||
| if (result == null) { | if (result == null) { | ||||
| statusLogin = Status.error; | statusLogin = Status.error; | ||||
| } else { | } else { | ||||
| @@ -1,26 +1,36 @@ | |||||
| import 'package:flutter/foundation.dart'; // برای شناسایی پلتفرم | |||||
| import 'package:dio/dio.dart'; | import 'package:dio/dio.dart'; | ||||
| import 'package:qadirneyriz/config/config.dart'; | import 'package:qadirneyriz/config/config.dart'; | ||||
| import 'package:qadirneyriz/main.dart'; | |||||
| import 'package:qadirneyriz/setting/setting.dart'; | import 'package:qadirneyriz/setting/setting.dart'; | ||||
| import 'package:qadirneyriz/utils/result/result.dart'; | import 'package:qadirneyriz/utils/result/result.dart'; | ||||
| class AuthServices { | class AuthServices { | ||||
| Future<Result?> loginApi( | |||||
| {required String mobile, | |||||
| String? password, | |||||
| String? otp, | |||||
| required String fcm_token}) async { | |||||
| Future<Result?> loginApi({ | |||||
| required String mobile, | |||||
| String? password, | |||||
| String? otp, | |||||
| }) async { | |||||
| String? token; | |||||
| token = await messaging.getToken(); | |||||
| assert(password != null || otp != null); | assert(password != null || otp != null); | ||||
| try { | try { | ||||
| Map<String, String> headers = {"Accept": "application/json"}; | Map<String, String> headers = {"Accept": "application/json"}; | ||||
| FormData? formData; | |||||
| FormData formData; | |||||
| formData = password != null | formData = password != null | ||||
| ? FormData.fromMap( | ? FormData.fromMap( | ||||
| {"mobile": mobile, "password": password, "device_id": fcm_token}) | |||||
| {"mobile": mobile, "password": password, "device_id": token}) | |||||
| : FormData.fromMap( | : FormData.fromMap( | ||||
| {"mobile": mobile, "otp": otp, "device_id": fcm_token}); | |||||
| {"mobile": mobile, "otp": otp, "device_id": token}); | |||||
| print('${formData.fields} resData'); | print('${formData.fields} resData'); | ||||
| final res = await Dio().post("${config.network.baseUrl}login", | |||||
| data: formData, options: Options(headers: headers)); | |||||
| final res = await Dio().post( | |||||
| "${config.network.baseUrl}login?lang=${setting.userLocalDb.getUser().language}", | |||||
| data: formData, | |||||
| options: Options(headers: headers)); | |||||
| if (res.statusCode == 200 || res.statusCode == 201) { | if (res.statusCode == 200 || res.statusCode == 201) { | ||||
| setting.userLocalDb.saveUserField('token', res.data['token']); | setting.userLocalDb.saveUserField('token', res.data['token']); | ||||
| @@ -34,8 +44,8 @@ class AuthServices { | |||||
| print(e); | print(e); | ||||
| return Result( | return Result( | ||||
| isOk: false, | isOk: false, | ||||
| errors: e.response!.data['errors'], | |||||
| message: e.response!.data['msg']); | |||||
| errors: e.response?.data['errors'], | |||||
| message: e.response?.data['msg']); | |||||
| } | } | ||||
| return const Result(isOk: false); | return const Result(isOk: false); | ||||
| } | } | ||||
| @@ -43,11 +53,12 @@ class AuthServices { | |||||
| Future<Result?> sendOtpApi({required String mobile}) async { | Future<Result?> sendOtpApi({required String mobile}) async { | ||||
| try { | try { | ||||
| Map<String, String> headers = {"Accept": "application/json"}; | Map<String, String> headers = {"Accept": "application/json"}; | ||||
| FormData? formData; | |||||
| formData = FormData.fromMap({"mobile": mobile}); | |||||
| FormData formData = FormData.fromMap({"mobile": mobile}); | |||||
| final res = await Dio().post("${config.network.baseUrl}sendOtp", | |||||
| data: formData, options: Options(headers: headers)); | |||||
| final res = await Dio().post( | |||||
| "${config.network.baseUrl}sendOtp?lang=${setting.userLocalDb.getUser().language}", | |||||
| data: formData, | |||||
| options: Options(headers: headers)); | |||||
| if (res.statusCode == 200 || res.statusCode == 201) { | if (res.statusCode == 200 || res.statusCode == 201) { | ||||
| return Result(isOk: true, message: res.data['msg']); | return Result(isOk: true, message: res.data['msg']); | ||||
| @@ -55,8 +66,8 @@ class AuthServices { | |||||
| } on DioException catch (e) { | } on DioException catch (e) { | ||||
| return Result( | return Result( | ||||
| isOk: false, | isOk: false, | ||||
| errors: e.response!.data['errors'], | |||||
| message: e.response!.data['msg']); | |||||
| errors: e.response?.data['errors'], | |||||
| message: e.response?.data['msg']); | |||||
| } | } | ||||
| return const Result(isOk: false); | return const Result(isOk: false); | ||||
| } | } | ||||
| @@ -35,7 +35,8 @@ class HomeApi { | |||||
| headers['Authorization'] = "Bearer $dataToken"; | headers['Authorization'] = "Bearer $dataToken"; | ||||
| } | } | ||||
| final res = await Dio().post("${config.network.baseUrl}admin/logout", | |||||
| final res = await Dio().post( | |||||
| "${config.network.baseUrl}admin/logout?lang=${setting.userLocalDb.getUser().language}", | |||||
| options: Options(headers: headers)); | options: Options(headers: headers)); | ||||
| if (res.statusCode == 200 || res.statusCode == 201) { | if (res.statusCode == 200 || res.statusCode == 201) { | ||||
| @@ -64,7 +65,7 @@ class HomeApi { | |||||
| } | } | ||||
| final res = await Dio().post( | final res = await Dio().post( | ||||
| "${config.network.baseUrl}user/deleteaccount", | |||||
| "${config.network.baseUrl}user/deleteaccount?lang=${setting.userLocalDb.getUser().language}", | |||||
| options: Options(headers: headers)); | options: Options(headers: headers)); | ||||
| if (res.statusCode == 200 || res.statusCode == 201) { | if (res.statusCode == 200 || res.statusCode == 201) { | ||||
| @@ -93,7 +94,8 @@ class HomeApi { | |||||
| headers['Authorization'] = "Bearer $dataToken"; | headers['Authorization'] = "Bearer $dataToken"; | ||||
| } | } | ||||
| final res = await Dio().post("${config.network.baseUrl}edit-profile", | |||||
| final res = await Dio().post( | |||||
| "${config.network.baseUrl}edit-profile?lang=${setting.userLocalDb.getUser().language}", | |||||
| options: Options( | options: Options( | ||||
| headers: headers, | headers: headers, | ||||
| ), | ), | ||||
| @@ -1 +1,2 @@ | |||||
| #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" | |||||
| #include "ephemeral/Flutter-Generated.xcconfig" | #include "ephemeral/Flutter-Generated.xcconfig" | ||||
| @@ -1 +1,2 @@ | |||||
| #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" | |||||
| #include "ephemeral/Flutter-Generated.xcconfig" | #include "ephemeral/Flutter-Generated.xcconfig" | ||||
| @@ -0,0 +1,43 @@ | |||||
| platform :osx, '10.14' | |||||
| # 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', 'ephemeral', '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 Flutter-Generated.xcconfig, then run \"flutter pub get\"" | |||||
| end | |||||
| require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) | |||||
| 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 | |||||
| inherit! :search_paths | |||||
| end | |||||
| end | |||||
| post_install do |installer| | |||||
| installer.pods_project.targets.each do |target| | |||||
| flutter_additional_macos_build_settings(target) | |||||
| end | |||||
| end | |||||
| @@ -142,6 +142,14 @@ packages: | |||||
| url: "https://pub.dev" | url: "https://pub.dev" | ||||
| source: hosted | source: hosted | ||||
| version: "1.3.1" | version: "1.3.1" | ||||
| change_app_package_name: | |||||
| dependency: "direct dev" | |||||
| description: | |||||
| name: change_app_package_name | |||||
| sha256: "1d6ca5fbaba7264f70857941543337b2efe48f19ae2eef29b89927541b52a787" | |||||
| url: "https://pub.dev" | |||||
| source: hosted | |||||
| version: "1.4.0" | |||||
| characters: | characters: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: | ||||
| @@ -3,7 +3,7 @@ description: "A new Flutter project." | |||||
| publish_to: 'none' | publish_to: 'none' | ||||
| version: 1.0.0+1 | |||||
| version: 1.0.3+3 | |||||
| environment: | environment: | ||||
| sdk: ^3.5.3 | sdk: ^3.5.3 | ||||
| @@ -43,6 +43,7 @@ dev_dependencies: | |||||
| sdk: flutter | sdk: flutter | ||||
| # flutter_lints: ^4.0.0 | # flutter_lints: ^4.0.0 | ||||
| build_runner: ^2.4.9 | build_runner: ^2.4.9 | ||||
| change_app_package_name: ^1.4.0 | |||||
| flutter: | flutter: | ||||