diff --git a/android/app/build.gradle b/android/app/build.gradle
index 44bbc2e..2f0db04 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -9,7 +9,7 @@ plugins {
}
android {
- namespace = "com.example.qadirneyriz"
+ namespace = "com.nghsco.mizban"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
@@ -24,7 +24,7 @@ android {
defaultConfig {
// 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.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
diff --git a/android/app/google-services.json b/android/app/google-services.json
index e68a240..5f048ea 100644
--- a/android/app/google-services.json
+++ b/android/app/google-services.json
@@ -23,6 +23,25 @@
"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"
diff --git a/android/app/src/main/kotlin/com/example/qadirneyriz/MainActivity.kt b/android/app/src/main/kotlin/com/nghsco/mizban/MainActivity.kt
similarity index 74%
rename from android/app/src/main/kotlin/com/example/qadirneyriz/MainActivity.kt
rename to android/app/src/main/kotlin/com/nghsco/mizban/MainActivity.kt
index 3081be0..7afad9b 100644
--- a/android/app/src/main/kotlin/com/example/qadirneyriz/MainActivity.kt
+++ b/android/app/src/main/kotlin/com/nghsco/mizban/MainActivity.kt
@@ -1,4 +1,4 @@
-package com.example.qadirneyriz
+package com.nghsco.mizban
import io.flutter.embedding.android.FlutterActivity
diff --git a/assets/images/5893208387750053755.jpg b/assets/images/5893208387750053755.jpg
deleted file mode 100644
index 1ca3730..0000000
Binary files a/assets/images/5893208387750053755.jpg and /dev/null differ
diff --git a/assets/images/iconinappbar.png b/assets/images/iconinappbar.png
deleted file mode 100644
index 7c09dd5..0000000
Binary files a/assets/images/iconinappbar.png and /dev/null differ
diff --git a/assets/images/logo.png b/assets/images/logo.png
deleted file mode 100644
index e004fd1..0000000
Binary files a/assets/images/logo.png and /dev/null differ
diff --git a/assets/images/logoaboutus.png b/assets/images/logoaboutus.png
deleted file mode 100644
index 35353ef..0000000
Binary files a/assets/images/logoaboutus.png and /dev/null differ
diff --git a/assets/images/logoapp.jpg b/assets/images/logoapp.jpg
deleted file mode 100644
index 4daeae1..0000000
Binary files a/assets/images/logoapp.jpg and /dev/null differ
diff --git a/assets/images/logomizban.png b/assets/images/logomizban.png
index 197fd3b..6d5d0f6 100644
Binary files a/assets/images/logomizban.png and b/assets/images/logomizban.png differ
diff --git a/assets/images/template.png b/assets/images/template.png
index 1d0f2d0..601238b 100644
Binary files a/assets/images/template.png and b/assets/images/template.png differ
diff --git a/firebase.json b/firebase.json
new file mode 100644
index 0000000..0c370d7
--- /dev/null
+++ b/firebase.json
@@ -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"}}}}}}
\ No newline at end of file
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
index 592ceee..ec97fc6 100644
--- a/ios/Flutter/Debug.xcconfig
+++ b/ios/Flutter/Debug.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
index 592ceee..c4855bf 100644
--- a/ios/Flutter/Release.xcconfig
+++ b/ios/Flutter/Release.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
diff --git a/ios/GoogleService-Info.plist b/ios/GoogleService-Info.plist
new file mode 100644
index 0000000..8adff5d
--- /dev/null
+++ b/ios/GoogleService-Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ API_KEY
+ AIzaSyDmiLNq_t5wyqDE2VW1wGyt6kArchRvLAQ
+ GCM_SENDER_ID
+ 392489806594
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ com.nghsco.mizban
+ PROJECT_ID
+ folad-neiriz
+ STORAGE_BUCKET
+ folad-neiriz.firebasestorage.app
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:392489806594:ios:b93d93374e9671ee3b301b
+
+
\ No newline at end of file
diff --git a/ios/Podfile b/ios/Podfile
new file mode 100644
index 0000000..c76d156
--- /dev/null
+++ b/ios/Podfile
@@ -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
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
new file mode 100644
index 0000000..e350528
--- /dev/null
+++ b/ios/Podfile.lock
@@ -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
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 632a727..6770a3b 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -8,12 +8,15 @@
/* Begin PBXBuildFile section */
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 */; };
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 */; };
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 */; };
+ EA2352549A2FAB01A3364E55 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B283BACC72FBA5C58553DEB5 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -42,9 +45,18 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 2718AC0B2D0EFA1300C32C95 /* RunnerRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerRelease.entitlements; sourceTree = ""; };
+ 2726A2F72D0ED5B5000CFFF8 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; };
+ 279E98EC2D1AC59100A23113 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 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 = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
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 = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
@@ -55,13 +67,24 @@
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 = ""; };
+ 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 = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 1E4C4A1290709861CA4805D3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4759CDBF48BBFAA16589BB1F /* Pods_RunnerTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ EA2352549A2FAB01A3364E55 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -90,10 +113,13 @@
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
+ 279E98EC2D1AC59100A23113 /* GoogleService-Info.plist */,
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
+ F8BB147E565F68927290DB18 /* Pods */,
+ CDF87532872B2723CF8E0440 /* Frameworks */,
);
sourceTree = "";
};
@@ -109,6 +135,8 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
+ 2718AC0B2D0EFA1300C32C95 /* RunnerRelease.entitlements */,
+ 2726A2F72D0ED5B5000CFFF8 /* Runner.entitlements */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
@@ -121,6 +149,28 @@
path = Runner;
sourceTree = "";
};
+ CDF87532872B2723CF8E0440 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ B283BACC72FBA5C58553DEB5 /* Pods_Runner.framework */,
+ 4A13A62BF8523DA69A6B7DED /* Pods_RunnerTests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 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 = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -128,8 +178,10 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
+ 67BC60F4D4382D10418A3A58 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */,
+ 1E4C4A1290709861CA4805D3 /* Frameworks */,
);
buildRules = (
);
@@ -145,12 +197,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
+ 92182B7D1D93B3076E45A1F8 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ 30C9A5270602859A8E6C794E /* [CP] Embed Pods Frameworks */,
+ 226F675192C22C6623CA1FCA /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -190,6 +245,8 @@
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
+ packageReferences = (
+ );
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
@@ -214,6 +271,7 @@
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+ 279E98ED2D1AC59100A23113 /* GoogleService-Info.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
@@ -222,6 +280,40 @@
/* End PBXResourcesBuildPhase 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 */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -238,6 +330,50 @@
shellPath = /bin/sh;
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 */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -361,15 +497,20 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
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)";
+ DEVELOPMENT_TEAM = FE8CDVE4RJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -378,13 +519,14 @@
};
331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 21E13784C9783A2D164934EC /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -395,13 +537,14 @@
};
331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 74285ED74C2E6E41B754C0CE /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -410,13 +553,14 @@
};
331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 3725BEAF3DF4B15F715B4D71 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz.RunnerTests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -540,15 +684,20 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
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)";
+ DEVELOPMENT_TEAM = FE8CDVE4RJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -562,15 +711,20 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
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)";
+ DEVELOPMENT_TEAM = FE8CDVE4RJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.qadirneyriz;
+ PRODUCT_BUNDLE_IDENTIFIER = com.nghsco.mizban;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
new file mode 100644
index 0000000..7b7290f
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -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
+}
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
index 1d526a1..21a3cc1 100644
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -4,4 +4,7 @@
+
+
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
index 6f22ce4..b636303 100644
--- a/ios/Runner/AppDelegate.swift
+++ b/ios/Runner/AppDelegate.swift
@@ -1,7 +1,5 @@
-import Flutter
import UIKit
-import Firebase
-import FirebaseMessaging
+import Flutter
@main
@objc class AppDelegate: FlutterAppDelegate {
@@ -9,55 +7,7 @@ import FirebaseMessaging
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
- // مقداردهی Firebase
- FirebaseApp.configure()
-
- // ثبت Plugin های Flutter
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)
}
-
- // متد دریافت 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])
- }
}
diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist
index ea71079..8adff5d 100644
--- a/ios/Runner/GoogleService-Info.plist
+++ b/ios/Runner/GoogleService-Info.plist
@@ -9,7 +9,7 @@
PLIST_VERSION
1
BUNDLE_ID
- com.example.qadirneyriz
+ com.nghsco.mizban
PROJECT_ID
folad-neiriz
STORAGE_BUCKET
@@ -25,6 +25,6 @@
IS_SIGNIN_ENABLED
GOOGLE_APP_ID
- 1:392489806594:ios:feeba2107eb852ec3b301b
+ 1:392489806594:ios:b93d93374e9671ee3b301b
\ No newline at end of file
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index f840df9..1f7a941 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -2,6 +2,8 @@
+ CADisableMinimumFrameDurationOnPhone
+
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
@@ -24,6 +26,26 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
+ NSAppTransportSecurity
+
+ NSAllowsLocalNetworking
+
+
+ NSPhotoLibraryUsageDescription
+ We need access to your photos to allow you to upload images.
+ UIApplicationSupportsIndirectInputEvents
+
+ UIBackgroundModes
+
+ remote-notification
+ processing
+ fetch
+
+ BGTaskSchedulerPermittedIdentifiers
+
+ com.nghsco.mizban.refresh
+ com.nghsco.mizban.processing
+
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
@@ -41,9 +63,7 @@
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
+ FirebaseMessagingAutoInitEnabled
+ NO
diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements
new file mode 100644
index 0000000..903def2
--- /dev/null
+++ b/ios/Runner/Runner.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ aps-environment
+ development
+
+
diff --git a/ios/Runner/RunnerRelease.entitlements b/ios/Runner/RunnerRelease.entitlements
new file mode 100644
index 0000000..903def2
--- /dev/null
+++ b/ios/Runner/RunnerRelease.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ aps-environment
+ development
+
+
diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart
new file mode 100644
index 0000000..8196ab3
--- /dev/null
+++ b/lib/firebase_options.dart
@@ -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',
+ );
+}
diff --git a/lib/l10n/app_fa.arb b/lib/l10n/app_fa.arb
index 172097b..2c2d1cd 100644
--- a/lib/l10n/app_fa.arb
+++ b/lib/l10n/app_fa.arb
@@ -122,5 +122,5 @@
"suretodelelteaccount": "آیا اطمینان دارید که میخواهید حساب کاربری خود را حذف کنید؟",
"actioncantundo": "این عمل قابل بازگشت نیست!",
"areusuretodeletfile":"آیا اطمینان دارید که میخواهید این فایل را حذف کنید؟",
- "textaboutus":"نرمافزار مدیریت جلسات و ملاقاتهای “میزبان” با هدف تسهیل و بهینهسازی فرآیندهای برگزاری جلسات سازمانی و شخصی جناب آقای دکتر محسن مصطفی پور طراحی و توسعه یافته تا ابزاری کارآمد و نوآورانه برای تحقق بیشتر اسم رمز همدلی در مجموعه معظم فولاد غدیر نی ریز باشد . این نرم افزار با حمایت ، همت و پشتیبانی بیدریغ مدیریت محترم عامل ( دکتر محسن مصطفی پور ) ایجاد ، توسعه و راه اندازی شده است."
+ "textaboutus":"نرمافزار مدیریت جلسات و ملاقاتهای “میزبان” با هدف تسهیل و بهینهسازی فرآیندهای برگزاری جلسات شخصی جناب آقای دکتر محسن مصطفی پور طراحی و توسعه یافته تا ابزاری کارآمد و نوآورانه باشد. این نرم افزار با حمایت ، همت و پشتیبانی بیدریغ دکتر محسن مصطفی پور ایجاد ، توسعه و راه اندازی شده است."
}
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index 78a403a..af29a7d 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -5,6 +5,7 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:provider/provider.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/router/router.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;
Future initializeApp() async {
- await Firebase.initializeApp();
await Hive.initFlutter();
+ await Firebase.initializeApp(
+ options: DefaultFirebaseOptions.currentPlatform,
+ );
await setting.userLocalDb.openBox();
+
+ // اجرای Firebase و تنظیمات نوتیفیکیشن فقط در اندروید
+
await requestNotificationPermission();
await getToken();
setupMessageListener();
@@ -45,15 +51,13 @@ Future requestNotificationPermission() async {
}
Future 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() {
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
});
}
@@ -102,31 +106,42 @@ class _MyAppState extends State {
Widget build(BuildContext context) {
return Consumer(
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'),
- ],
);
},
);
diff --git a/lib/screens/auth/login_screen.dart b/lib/screens/auth/login_screen.dart
index 6eabe25..dbd2ad1 100644
--- a/lib/screens/auth/login_screen.dart
+++ b/lib/screens/auth/login_screen.dart
@@ -152,9 +152,9 @@ class _LoginScreenState extends State {
isError: true,
context,
);
- } else { String? token = await messaging.getToken();
+ } else {
final status = await state.login(
- fcm_token: token??'',
+
mobile: phoneController.text,
password: passwordController.text);
if (status == Status.ready) {
diff --git a/lib/screens/auth/otp_screen.dart b/lib/screens/auth/otp_screen.dart
index d984672..9332a83 100644
--- a/lib/screens/auth/otp_screen.dart
+++ b/lib/screens/auth/otp_screen.dart
@@ -132,6 +132,7 @@ class _OtpScreenState extends State {
},
),
),
+
],
),
],
@@ -183,10 +184,9 @@ class _OtpScreenState extends State {
}
void otpCheckCode(onSubmitted, AuthState value) async {
- String? token = await messaging.getToken();
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) {
context.goNamed('navigate', pathParameters: {'tab': '0'});
} else if (status == Status.error) {
diff --git a/lib/screens/auth/state/state.dart b/lib/screens/auth/state/state.dart
index f5f78a0..c47e1f9 100644
--- a/lib/screens/auth/state/state.dart
+++ b/lib/screens/auth/state/state.dart
@@ -25,13 +25,13 @@ class AuthState extends ChangeNotifier {
{required String mobile,
String? password,
String? otp,
- required String fcm_token}) async {
+ }) async {
assert(password != null || otp != null);
statusLogin = Status.loading;
notifyListeners();
try {
final result = await authServises.loginApi(
- mobile: mobile, password: password, otp: otp, fcm_token: fcm_token);
+ mobile: mobile, password: password, otp: otp, );
if (result == null) {
statusLogin = Status.error;
} else {
diff --git a/lib/services/auth/auth.dart b/lib/services/auth/auth.dart
index 00b6e6a..d4dc85e 100644
--- a/lib/services/auth/auth.dart
+++ b/lib/services/auth/auth.dart
@@ -1,26 +1,36 @@
+import 'package:flutter/foundation.dart'; // برای شناسایی پلتفرم
import 'package:dio/dio.dart';
import 'package:qadirneyriz/config/config.dart';
+import 'package:qadirneyriz/main.dart';
import 'package:qadirneyriz/setting/setting.dart';
import 'package:qadirneyriz/utils/result/result.dart';
class AuthServices {
- Future loginApi(
- {required String mobile,
- String? password,
- String? otp,
- required String fcm_token}) async {
+ Future loginApi({
+ required String mobile,
+ String? password,
+ String? otp,
+ }) async {
+ String? token;
+
+ token = await messaging.getToken();
+
assert(password != null || otp != null);
+
try {
Map headers = {"Accept": "application/json"};
- FormData? formData;
+ FormData formData;
formData = password != null
? FormData.fromMap(
- {"mobile": mobile, "password": password, "device_id": fcm_token})
+ {"mobile": mobile, "password": password, "device_id": token})
: FormData.fromMap(
- {"mobile": mobile, "otp": otp, "device_id": fcm_token});
+ {"mobile": mobile, "otp": otp, "device_id": token});
+
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) {
setting.userLocalDb.saveUserField('token', res.data['token']);
@@ -34,8 +44,8 @@ class AuthServices {
print(e);
return Result(
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);
}
@@ -43,11 +53,12 @@ class AuthServices {
Future sendOtpApi({required String mobile}) async {
try {
Map 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) {
return Result(isOk: true, message: res.data['msg']);
@@ -55,8 +66,8 @@ class AuthServices {
} on DioException catch (e) {
return Result(
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);
}
diff --git a/lib/services/home/home.dart b/lib/services/home/home.dart
index b3eb168..0f5f4df 100644
--- a/lib/services/home/home.dart
+++ b/lib/services/home/home.dart
@@ -35,7 +35,8 @@ class HomeApi {
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));
if (res.statusCode == 200 || res.statusCode == 201) {
@@ -64,7 +65,7 @@ class HomeApi {
}
final res = await Dio().post(
- "${config.network.baseUrl}user/deleteaccount",
+ "${config.network.baseUrl}user/deleteaccount?lang=${setting.userLocalDb.getUser().language}",
options: Options(headers: headers));
if (res.statusCode == 200 || res.statusCode == 201) {
@@ -93,7 +94,8 @@ class HomeApi {
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(
headers: headers,
),
diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig
index c2efd0b..4b81f9b 100644
--- a/macos/Flutter/Flutter-Debug.xcconfig
+++ b/macos/Flutter/Flutter-Debug.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig
index c2efd0b..5caa9d1 100644
--- a/macos/Flutter/Flutter-Release.xcconfig
+++ b/macos/Flutter/Flutter-Release.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/macos/Podfile b/macos/Podfile
new file mode 100644
index 0000000..c795730
--- /dev/null
+++ b/macos/Podfile
@@ -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
diff --git a/pubspec.lock b/pubspec.lock
index 88992b1..06b7bd4 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -142,6 +142,14 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index f23c33d..ff0034f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: "A new Flutter project."
publish_to: 'none'
-version: 1.0.0+1
+version: 1.0.3+3
environment:
sdk: ^3.5.3
@@ -43,6 +43,7 @@ dev_dependencies:
sdk: flutter
# flutter_lints: ^4.0.0
build_runner: ^2.4.9
+ change_app_package_name: ^1.4.0
flutter: