diff --git a/.vscode/launch.json b/.vscode/launch.json index e7b950e..71fb7ca 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -25,6 +25,17 @@ "dev" ], }, + { + "name": "Dev iOS", + "request": "launch", + "type": "dart", + "program": "lib/main-dev.dart", + "args": [ + "-t", + "lib/main-dev.dart", + ], + }, + { "name": "Pro", "request": "launch", diff --git a/ios/Flutter/.last_build_id b/ios/Flutter/.last_build_id new file mode 100644 index 0000000..586a1eb --- /dev/null +++ b/ios/Flutter/.last_build_id @@ -0,0 +1 @@ +771d17f946c2bdb9cccb6f6067d288ab \ No newline at end of file diff --git a/ios/GoogleService-Info.plist b/ios/GoogleService-Info.plist new file mode 100644 index 0000000..9bda7c7 --- /dev/null +++ b/ios/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 + API_KEY + AIzaSyBZICfIDWbWqjxHwY_jFnWv34EtCpiiE78 + GCM_SENDER_ID + 944560757353 + PLIST_VERSION + 1 + BUNDLE_ID + com.mokkon.fcs.dev + PROJECT_ID + fcs-dev1 + STORAGE_BUCKET + fcs-dev1.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:944560757353:ios:de037244faea4173fa60f8 + DATABASE_URL + https://fcs-dev1.firebaseio.com + + \ No newline at end of file diff --git a/ios/Podfile b/ios/Podfile index 5a69b89..0e8ecd1 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -10,75 +10,30 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +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 - generated_key_values = {} - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) do |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - generated_key_values[podname] = podpath - else - puts "Invalid plugin specification: #{line}" - end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches end - generated_key_values + 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 - # Flutter Pod - - copied_flutter_dir = File.join(__dir__, 'Flutter') - copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') - copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') - unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) - # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. - # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. - # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. - - generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') - unless File.exist?(generated_xcode_build_settings_path) - raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) - cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; - - unless File.exist?(copied_framework_path) - FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) - end - unless File.exist?(copied_podspec_path) - FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) - end - end - - # Keep pod path relative so it can be checked into Podfile.lock. - pod 'Flutter', :path => 'Flutter' - - # Plugin Pods - - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - system('rm -rf .symlinks') - system('mkdir -p .symlinks/plugins') - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.each do |name, path| - symlink = File.join('.symlinks', 'plugins', name) - File.symlink(path, symlink) - pod name, :path => File.join(symlink, 'ios') - end + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end post_install do |installer| installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['ENABLE_BITCODE'] = 'NO' - end + flutter_additional_ios_build_settings(target) end end +use_frameworks! \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1db0755..de35ff5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -212,6 +212,10 @@ PODS: - abseil/base/base_internal - abseil/base/config - abseil/meta/type_traits + - barcode_scan (0.0.1): + - Flutter + - MTBBarcodeScanner + - SwiftProtobuf - BoringSSL-GRPC (0.0.7): - BoringSSL-GRPC/Implementation (= 0.0.7) - BoringSSL-GRPC/Interface (= 0.0.7) @@ -224,43 +228,37 @@ PODS: - Firebase/Core - Firebase/Firestore (~> 6.0) - Flutter - - cloud_firestore_web (0.1.0): - - Flutter - connectivity (0.0.1): - Flutter - Reachability - - connectivity_macos (0.0.1): - - Flutter - device_info (0.0.1): - Flutter - downloads_path_provider (0.0.1): - Flutter - - Firebase/Auth (6.25.0): + - Firebase/Auth (6.31.1): - Firebase/CoreOnly - - FirebaseAuth (~> 6.5.3) - - Firebase/Core (6.25.0): + - FirebaseAuth (~> 6.9.0) + - Firebase/Core (6.31.1): - Firebase/CoreOnly - - FirebaseAnalytics (= 6.5.1) - - Firebase/CoreOnly (6.25.0): - - FirebaseCore (= 6.7.1) - - Firebase/Firestore (6.25.0): + - FirebaseAnalytics (= 6.8.0) + - Firebase/CoreOnly (6.31.1): + - FirebaseCore (= 6.10.1) + - Firebase/Firestore (6.31.1): - Firebase/CoreOnly - - FirebaseFirestore (~> 1.14.0) - - Firebase/Messaging (6.25.0): + - FirebaseFirestore (~> 1.17.0) + - Firebase/Messaging (6.31.1): - Firebase/CoreOnly - - FirebaseMessaging (~> 4.4.1) - - Firebase/Storage (6.25.0): + - FirebaseMessaging (~> 4.6.2) + - Firebase/Storage (6.31.1): - Firebase/CoreOnly - - FirebaseStorage (~> 3.6.1) + - FirebaseStorage (~> 3.9.0) - firebase_auth (0.0.1): - - Firebase/Auth (~> 6.0) + - Firebase/Auth (~> 6.3) - Firebase/Core - Flutter - firebase_core (0.0.1): - Firebase/Core - Flutter - - firebase_core_web (0.1.0): - - Flutter - firebase_messaging (0.0.1): - Firebase/Core - Firebase/Messaging @@ -268,36 +266,30 @@ PODS: - firebase_storage (0.0.1): - Firebase/Storage - Flutter - - FirebaseAnalytics (6.5.1): - - FirebaseCore (~> 6.7) - - FirebaseInstallations (~> 1.2) - - GoogleAppMeasurement (= 6.5.1) - - GoogleUtilities/AppDelegateSwizzler (~> 6.0) - - GoogleUtilities/MethodSwizzler (~> 6.0) - - GoogleUtilities/Network (~> 6.0) - - "GoogleUtilities/NSData+zlib (~> 6.0)" - - nanopb (~> 1.30905.0) - - FirebaseAnalyticsInterop (1.5.0) - - FirebaseAuth (6.5.3): - - FirebaseAuthInterop (~> 1.0) - - FirebaseCore (~> 6.6) - - GoogleUtilities/AppDelegateSwizzler (~> 6.5) - - GoogleUtilities/Environment (~> 6.5) + - FirebaseAnalytics (6.8.0): + - FirebaseCore (~> 6.10) + - FirebaseInstallations (~> 1.6) + - GoogleAppMeasurement (= 6.8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/MethodSwizzler (~> 6.7) + - GoogleUtilities/Network (~> 6.7) + - "GoogleUtilities/NSData+zlib (~> 6.7)" + - nanopb (~> 1.30906.0) + - FirebaseAuth (6.9.0): + - FirebaseCore (~> 6.10) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/Environment (~> 6.7) - GTMSessionFetcher/Core (~> 1.1) - - FirebaseAuthInterop (1.1.0) - - FirebaseCore (6.7.1): - - FirebaseCoreDiagnostics (~> 1.3) - - FirebaseCoreDiagnosticsInterop (~> 1.2) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Logger (~> 6.5) - - FirebaseCoreDiagnostics (1.3.0): - - FirebaseCoreDiagnosticsInterop (~> 1.2) - - GoogleDataTransportCCTSupport (~> 3.1) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Logger (~> 6.5) - - nanopb (~> 1.30905.0) - - FirebaseCoreDiagnosticsInterop (1.2.0) - - FirebaseFirestore (1.14.0): + - FirebaseCore (6.10.1): + - FirebaseCoreDiagnostics (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - FirebaseCoreDiagnostics (1.6.0): + - GoogleDataTransport (~> 7.2) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - nanopb (~> 1.30906.0) + - FirebaseFirestore (1.17.0): - abseil/algorithm (= 0.20200225.0) - abseil/base (= 0.20200225.0) - abseil/memory (= 0.20200225.0) @@ -305,71 +297,66 @@ PODS: - abseil/strings/strings (= 0.20200225.0) - abseil/time (= 0.20200225.0) - abseil/types (= 0.20200225.0) - - FirebaseAuthInterop (~> 1.0) - - FirebaseCore (~> 6.2) + - FirebaseCore (~> 6.10) - "gRPC-C++ (~> 1.28.0)" - leveldb-library (~> 1.22) - - nanopb (~> 1.30905.0) - - FirebaseInstallations (1.2.0): - - FirebaseCore (~> 6.6) - - GoogleUtilities/Environment (~> 6.6) - - GoogleUtilities/UserDefaults (~> 6.6) + - nanopb (~> 1.30906.0) + - FirebaseInstallations (1.7.0): + - FirebaseCore (~> 6.10) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) - PromisesObjC (~> 1.2) - - FirebaseInstanceID (4.3.4): - - FirebaseCore (~> 6.6) - - FirebaseInstallations (~> 1.0) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/UserDefaults (~> 6.5) - - FirebaseMessaging (4.4.1): - - FirebaseAnalyticsInterop (~> 1.5) - - FirebaseCore (~> 6.6) - - FirebaseInstanceID (~> 4.3) - - GoogleUtilities/AppDelegateSwizzler (~> 6.5) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Reachability (~> 6.5) - - GoogleUtilities/UserDefaults (~> 6.5) + - FirebaseInstanceID (4.6.0): + - FirebaseCore (~> 6.10) + - FirebaseInstallations (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) + - FirebaseMessaging (4.6.2): + - FirebaseCore (~> 6.10) + - FirebaseInstanceID (~> 4.6) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Reachability (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) - Protobuf (>= 3.9.2, ~> 3.9) - - FirebaseStorage (3.6.1): - - FirebaseAuthInterop (~> 1.1) - - FirebaseCore (~> 6.6) + - FirebaseStorage (3.9.0): + - FirebaseCore (~> 6.10) - GTMSessionFetcher/Core (~> 1.1) - Flutter (1.0.0) - flutter_downloader (0.0.1): - Flutter - - flutter_plugin_android_lifecycle (0.0.1): + - flutter_local_notifications (0.0.1): + - Flutter + - flutter_pdfview (1.0.2): - Flutter - flutter_ringtone_player (0.0.1): - Flutter - - google_api_availability (2.0.4): - - Flutter - - GoogleAppMeasurement (6.5.1): - - GoogleUtilities/AppDelegateSwizzler (~> 6.0) - - GoogleUtilities/MethodSwizzler (~> 6.0) - - GoogleUtilities/Network (~> 6.0) - - "GoogleUtilities/NSData+zlib (~> 6.0)" - - nanopb (~> 1.30905.0) - - GoogleDataTransport (6.1.1) - - GoogleDataTransportCCTSupport (3.1.0): - - GoogleDataTransport (~> 6.1) - - nanopb (~> 1.30905.0) - - GoogleUtilities/AppDelegateSwizzler (6.6.0): + - GoogleAppMeasurement (6.8.0): + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/MethodSwizzler (~> 6.7) + - GoogleUtilities/Network (~> 6.7) + - "GoogleUtilities/NSData+zlib (~> 6.7)" + - nanopb (~> 1.30906.0) + - GoogleDataTransport (7.3.0): + - nanopb (~> 1.30906.0) + - GoogleUtilities/AppDelegateSwizzler (6.7.2): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (6.6.0): + - GoogleUtilities/Environment (6.7.2): - PromisesObjC (~> 1.2) - - GoogleUtilities/Logger (6.6.0): + - GoogleUtilities/Logger (6.7.2): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (6.6.0): + - GoogleUtilities/MethodSwizzler (6.7.2): - GoogleUtilities/Logger - - GoogleUtilities/Network (6.6.0): + - GoogleUtilities/Network (6.7.2): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (6.6.0)" - - GoogleUtilities/Reachability (6.6.0): + - "GoogleUtilities/NSData+zlib (6.7.2)" + - GoogleUtilities/Reachability (6.7.2): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (6.6.0): + - GoogleUtilities/UserDefaults (6.7.2): - GoogleUtilities/Logger - "gRPC-C++ (1.28.2)": - "gRPC-C++/Implementation (= 1.28.2)" @@ -399,67 +386,52 @@ PODS: - image_picker (0.0.1): - Flutter - leveldb-library (1.22) - - nanopb (1.30905.0): - - nanopb/decode (= 1.30905.0) - - nanopb/encode (= 1.30905.0) - - nanopb/decode (1.30905.0) - - nanopb/encode (1.30905.0) + - MTBBarcodeScanner (5.0.11) + - nanopb (1.30906.0): + - nanopb/decode (= 1.30906.0) + - nanopb/encode (= 1.30906.0) + - nanopb/decode (1.30906.0) + - nanopb/encode (1.30906.0) - open_file (0.0.1): - Flutter - package_info (0.0.1): - Flutter - path_provider (0.0.1): - Flutter - - path_provider_macos (0.0.1): - - Flutter - "permission_handler (4.4.0+hotfix.4)": - Flutter - - PromisesObjC (1.2.8) - - Protobuf (3.12.0) + - PromisesObjC (1.2.10) + - Protobuf (3.13.0) - Reachability (3.2) - shared_preferences (0.0.1): - Flutter - - shared_preferences_macos (0.0.1): - - Flutter - - shared_preferences_web (0.0.1): - - Flutter + - SwiftProtobuf (1.12.0) - url_launcher (0.0.1): - Flutter - - url_launcher_macos (0.0.1): - - Flutter - - url_launcher_web (0.0.1): - - Flutter DEPENDENCIES: + - barcode_scan (from `.symlinks/plugins/barcode_scan/ios`) - camera (from `.symlinks/plugins/camera/ios`) - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) - - cloud_firestore_web (from `.symlinks/plugins/cloud_firestore_web/ios`) - connectivity (from `.symlinks/plugins/connectivity/ios`) - - connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`) - device_info (from `.symlinks/plugins/device_info/ios`) - downloads_path_provider (from `.symlinks/plugins/downloads_path_provider/ios`) - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) - Flutter (from `Flutter`) - flutter_downloader (from `.symlinks/plugins/flutter_downloader/ios`) - - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - flutter_pdfview (from `.symlinks/plugins/flutter_pdfview/ios`) - flutter_ringtone_player (from `.symlinks/plugins/flutter_ringtone_player/ios`) - - google_api_availability (from `.symlinks/plugins/google_api_availability/ios`) - image_picker (from `.symlinks/plugins/image_picker/ios`) - open_file (from `.symlinks/plugins/open_file/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) - - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) - - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) - - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) SPEC REPOS: trunk: @@ -467,12 +439,9 @@ SPEC REPOS: - BoringSSL-GRPC - Firebase - FirebaseAnalytics - - FirebaseAnalyticsInterop - FirebaseAuth - - FirebaseAuthInterop - FirebaseCore - FirebaseCoreDiagnostics - - FirebaseCoreDiagnosticsInterop - FirebaseFirestore - FirebaseInstallations - FirebaseInstanceID @@ -480,28 +449,27 @@ SPEC REPOS: - FirebaseStorage - GoogleAppMeasurement - GoogleDataTransport - - GoogleDataTransportCCTSupport - GoogleUtilities - "gRPC-C++" - gRPC-Core - GTMSessionFetcher - leveldb-library + - MTBBarcodeScanner - nanopb - PromisesObjC - Protobuf - Reachability + - SwiftProtobuf EXTERNAL SOURCES: + barcode_scan: + :path: ".symlinks/plugins/barcode_scan/ios" camera: :path: ".symlinks/plugins/camera/ios" cloud_firestore: :path: ".symlinks/plugins/cloud_firestore/ios" - cloud_firestore_web: - :path: ".symlinks/plugins/cloud_firestore_web/ios" connectivity: :path: ".symlinks/plugins/connectivity/ios" - connectivity_macos: - :path: ".symlinks/plugins/connectivity_macos/ios" device_info: :path: ".symlinks/plugins/device_info/ios" downloads_path_provider: @@ -510,8 +478,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_auth/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" - firebase_core_web: - :path: ".symlinks/plugins/firebase_core_web/ios" firebase_messaging: :path: ".symlinks/plugins/firebase_messaging/ios" firebase_storage: @@ -520,12 +486,12 @@ EXTERNAL SOURCES: :path: Flutter flutter_downloader: :path: ".symlinks/plugins/flutter_downloader/ios" - flutter_plugin_android_lifecycle: - :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + flutter_pdfview: + :path: ".symlinks/plugins/flutter_pdfview/ios" flutter_ringtone_player: :path: ".symlinks/plugins/flutter_ringtone_player/ios" - google_api_availability: - :path: ".symlinks/plugins/google_api_availability/ios" image_picker: :path: ".symlinks/plugins/image_picker/ios" open_file: @@ -534,81 +500,62 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" - path_provider_macos: - :path: ".symlinks/plugins/path_provider_macos/ios" permission_handler: :path: ".symlinks/plugins/permission_handler/ios" shared_preferences: :path: ".symlinks/plugins/shared_preferences/ios" - shared_preferences_macos: - :path: ".symlinks/plugins/shared_preferences_macos/ios" - shared_preferences_web: - :path: ".symlinks/plugins/shared_preferences_web/ios" url_launcher: :path: ".symlinks/plugins/url_launcher/ios" - url_launcher_macos: - :path: ".symlinks/plugins/url_launcher_macos/ios" - url_launcher_web: - :path: ".symlinks/plugins/url_launcher_web/ios" SPEC CHECKSUMS: abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f + barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479 BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879 camera: d56ad165545ae5a0ffb892376033760a969c68c8 - cloud_firestore: 4cc700e236ebfe2d5d980e49cb066d202cfee0e9 - cloud_firestore_web: 9ec3dc7f5f98de5129339802d491c1204462bfec + cloud_firestore: 2a4f8f802fb0b701cf809b283b6bec7477ebaa6f connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467 - connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191 device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 downloads_path_provider: fe0d06888d4b8c055a59edbc2f51f03e63cb0e28 - Firebase: 5719b4f965f76643241a1bb8244483ff6117db39 - firebase_auth: d99b993c1405096e66c58211b1cd956c23eed1c5 + Firebase: 658370fa0181826a74b7cfca8d68c5856ca749ae + firebase_auth: af8784c4d8d87c36f730a305f97bfbcb24db024b firebase_core: 335c02abd48672b7c83c683df833d0488a72e73e - firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1 firebase_messaging: 21344b3b3a7d9d325d63a70e3750c0c798fe1e03 firebase_storage: 22966fce4aa6e8848cbaa017df62107cee29f327 - FirebaseAnalytics: 93565f3f0f0f50a5d8770850bfe6a82eaba5db27 - FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae - FirebaseAuth: 7047aec89c0b17ecd924a550c853f0c27ac6015e - FirebaseAuthInterop: a0f37ae05833af156e72028f648d313f7e7592e9 - FirebaseCore: 6023faeada5afa95a349fccafb40900e32e9ac42 - FirebaseCoreDiagnostics: 4a773a47bd83bbd5a9b1ccf1ce7caa8b2d535e67 - FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 - FirebaseFirestore: deb7242803734c97376278698de097499cf5194f - FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa - FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b - FirebaseMessaging: 29543feb343b09546ab3aa04d008ee8595b43c44 - FirebaseStorage: f4f39ae834a7145963b913f54e2f24a9db1d8fac + FirebaseAnalytics: 0ca9aa2af7cc4dc92392b7a78bfc49feaa2eb60f + FirebaseAuth: 09f086fae98643f1ef235674cf3ae171ce26f5ba + FirebaseCore: 6fb954e350af0885803d5aa49865d15d9a6b264c + FirebaseCoreDiagnostics: 7415bfb3883b3500c5a95c42b6ba66baae78f600 + FirebaseFirestore: ef0ad529a72c8e6542050dc7742fbd4cf009f297 + FirebaseInstallations: 466c7b4d1f58fe16707693091da253726a731ed2 + FirebaseInstanceID: 84f5f5762f1bee94ca2254f693bbf5aec6666504 + FirebaseMessaging: 82d75b3770a78bbce470769a6980429608b4c407 + FirebaseStorage: 33b92875a9b556824886cc7a65120c7d2cb3a8d8 Flutter: 0e3d915762c693b495b44d77113d4970485de6ec flutter_downloader: 058b9c41564a90500f67f3e432e3524613a7fd83 - flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 + flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186 + flutter_pdfview: 25f53dd6097661e6395b17de506e6060585946bd flutter_ringtone_player: 15eba85187230b87b2512f0e1b92225618bc03e7 - google_api_availability: 15fa42a8cd83c0a6738507ffe6e87096f12abcb8 - GoogleAppMeasurement: 137afe68bfa406c3f4221b9395253d9e5d4654cf - GoogleDataTransport: ad884314b81cdb808fb1d23787b367ff8da4e28a - GoogleDataTransportCCTSupport: d70a561f7d236af529fee598835caad5e25f6d3d - GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1 + GoogleAppMeasurement: ecc30d0ab5b66d7d18e85ce1b8e2b345db60626d + GoogleDataTransport: e85fb700c9b027079ce182c3d08e12e0f9618bb4 + GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3 "gRPC-C++": 13d8ccef97d5c3c441b7e3c529ef28ebee86fad2 gRPC-Core: 4afa11bfbedf7cdecd04de535a9e046893404ed5 GTMSessionFetcher: 6f5c8abbab8a9bce4bb3f057e317728ec6182b10 - image_picker: 66aa71bc96850a90590a35d4c4a2907b0d823109 + image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7 - nanopb: c43f40fadfe79e8b8db116583945847910cbabc9 + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c - path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 permission_handler: 8278954f2382902f63f00dd8828769c0bd6d511b - PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6 - Protobuf: 2793fcd0622a00b546c60e7cbbcc493e043e9bb9 + PromisesObjC: b14b1c6b68e306650688599de8a45e49fae81151 + Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d - shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 - shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 + SwiftProtobuf: 4ef85479c18ca85b5482b343df9c319c62bda699 url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef - url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 - url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c -PODFILE CHECKSUM: f32fb4e7c14f8b3ca19a369d7be425dd9241af27 +PODFILE CHECKSUM: a7be649ff08e382c76abdb82aa94dd2686e03de2 COCOAPODS: 1.9.3 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index dfb78d7..aa18b31 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -8,9 +8,9 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */; }; + 84CCB9CC250686A6007CA635 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */; }; + 8FF2990E87F63E94C0E96E91 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31321200669E6437325AD4E8 /* Pods_Runner.framework */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -34,13 +34,14 @@ /* 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 = ""; }; - 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 31321200669E6437325AD4E8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 4EC225A1B805CDBD5F102E79 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 843570B12507BCA20027CE07 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -58,7 +59,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */, + 8FF2990E87F63E94C0E96E91 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -89,7 +90,7 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( - 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */, + 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, @@ -109,6 +110,7 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( + 843570B12507BCA20027CE07 /* Runner.entitlements */, 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 97C146FA1CF9000F007C117D /* Main.storyboard */, @@ -133,7 +135,7 @@ DAE0DFCA6468DD1B18DA1D13 /* Frameworks */ = { isa = PBXGroup; children = ( - 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */, + 31321200669E6437325AD4E8 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -153,7 +155,6 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 39EACD7450202B9456DD1588 /* [CP] Embed Pods Frameworks */, - 3F40F0B932775B103C077553 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -203,7 +204,7 @@ files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */, + 84CCB9CC250686A6007CA635 /* GoogleService-Info.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); @@ -243,23 +244,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 3F40F0B932775B103C077553 /* [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; - }; 7B5736D5587E0AC72E154BA7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -333,7 +317,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -387,6 +370,9 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -395,6 +381,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -403,15 +390,15 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -467,7 +454,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -521,6 +507,9 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -529,6 +518,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -537,8 +527,9 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -548,6 +539,9 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -556,6 +550,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -564,8 +559,9 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 70e8393..43a8e76 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -1,5 +1,6 @@ #import "AppDelegate.h" #import "GeneratedPluginRegistrant.h" +@import Firebase; @implementation AppDelegate @@ -7,7 +8,16 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. + if (@available(iOS 10.0, *)) { + [UNUserNotificationCenter currentNotificationCenter].delegate = (id) self; + } return [super application:application didFinishLaunchingWithOptions:launchOptions]; } +//- (void)application:(UIApplication *)application +// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +// // Pass device token to auth. +// [[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeUnknown]; +// // Further handling of the device token if needed by the app. +//} @end diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist index 8a475d5..9bda7c7 100644 --- a/ios/Runner/GoogleService-Info.plist +++ b/ios/Runner/GoogleService-Info.plist @@ -3,21 +3,21 @@ CLIENT_ID - 865099544652-okjme55c71n8piiphtjaqk543ngl2n3g.apps.googleusercontent.com + 944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21.apps.googleusercontent.com REVERSED_CLIENT_ID - com.googleusercontent.apps.865099544652-okjme55c71n8piiphtjaqk543ngl2n3g + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 API_KEY - AIzaSyCdYfjf7aYtMHMHwS4_pZ2H6lHg0kSVOlk + AIzaSyBZICfIDWbWqjxHwY_jFnWv34EtCpiiE78 GCM_SENDER_ID - 865099544652 + 944560757353 PLIST_VERSION 1 BUNDLE_ID - com.mokkon.easycard-dev + com.mokkon.fcs.dev PROJECT_ID - easy-card-dev + fcs-dev1 STORAGE_BUCKET - easy-card-dev.appspot.com + fcs-dev1.appspot.com IS_ADS_ENABLED IS_ANALYTICS_ENABLED @@ -29,8 +29,8 @@ IS_SIGNIN_ENABLED GOOGLE_APP_ID - 1:865099544652:ios:4dfae368fb05f4cc + 1:944560757353:ios:de037244faea4173fa60f8 DATABASE_URL - https://easy-card-dev.firebaseio.com + https://fcs-dev1.firebaseio.com \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 476414f..02afb47 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -18,10 +18,28 @@ $(FLUTTER_BUILD_NAME) CFBundleSignature ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 + + + CFBundleVersion $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSCameraUsageDescription + Camera permission is required for barcode scanning. + UIBackgroundModes + + fetch + remote-notification + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile 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/lib/fcs/common/data/providers/messaging_fcm.dart b/lib/fcs/common/data/providers/messaging_fcm.dart index 2b31272..0bbe054 100644 --- a/lib/fcs/common/data/providers/messaging_fcm.dart +++ b/lib/fcs/common/data/providers/messaging_fcm.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:fcs/fcs/common/services/messaging_service.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:logging/logging.dart'; @@ -29,7 +31,7 @@ class MessagingFCM { log.info("onMessage: $message"); if (onMessage != null) _onNotify(message, onMessage); }, - onBackgroundMessage: backgroundMessageHandler, + onBackgroundMessage: Platform.isIOS ? null : backgroundMessageHandler, onLaunch: (Map message) async { log.info("onLaunch: $message"); if (onLaunch != null) _onNotify(message, onLaunch); @@ -39,9 +41,8 @@ class MessagingFCM { if (onResume != null) _onNotify(message, onResume); }, ); - _firebaseMessaging.requestNotificationPermissions( - const IosNotificationSettings( - sound: true, badge: true, alert: true, provisional: true)); + _firebaseMessaging + .requestNotificationPermissions(const IosNotificationSettings()); _firebaseMessaging.onIosSettingsRegistered .listen((IosNotificationSettings settings) { log.info("Settings registered: $settings"); diff --git a/lib/fcs/common/helpers/api_helper.dart b/lib/fcs/common/helpers/api_helper.dart index 3e166ef..1103179 100644 --- a/lib/fcs/common/helpers/api_helper.dart +++ b/lib/fcs/common/helpers/api_helper.dart @@ -7,6 +7,7 @@ import 'package:logging/logging.dart'; import 'package:fcs/vo/status.dart'; import '../../../config.dart'; +import 'dev_info.dart'; final log = Logger('requestAPI'); @@ -19,18 +20,16 @@ Future requestAPI( String token, String url, }) async { - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); - AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; - String deviceName = "${androidInfo.model}(${androidInfo.id})"; - log.info("device:${androidInfo.androidId},deviceName:$deviceName"); + DevInfo devInfo = await DevInfo.getDevInfo(); + + String deviceName = "${devInfo.model}(${devInfo.id})"; + log.info("device:${devInfo.deviceID},deviceName:$deviceName"); Map headers = {}; if (token != null) { headers["Token"] = token; } - if (androidInfo.androidId != null) { - headers["Device"] = androidInfo.androidId + ":" + deviceName; - } + headers["Device"] = devInfo.deviceID + ":" + deviceName; headers["Project-ID"] = Config.instance.reportProjectID; BaseOptions options = new BaseOptions( diff --git a/lib/fcs/common/helpers/dev_info.dart b/lib/fcs/common/helpers/dev_info.dart new file mode 100644 index 0000000..255bf92 --- /dev/null +++ b/lib/fcs/common/helpers/dev_info.dart @@ -0,0 +1,32 @@ +import 'package:device_info/device_info.dart'; +import 'dart:io' show Platform; + +class DevInfo { + bool isAndroid; + bool isIOS; + String deviceID; + String id; + String model; + + static DevInfo _instance; + + static Future getDevInfo() async { + if (_instance != null) return Future.value(_instance); + + _instance = DevInfo(); + DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + + if (Platform.isAndroid) { + AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + _instance.deviceID = androidInfo.androidId; + _instance.id = androidInfo.id; + _instance.model = androidInfo.model; + } else if (Platform.isIOS) { + IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo; + _instance.deviceID = iosDeviceInfo.identifierForVendor; + _instance.id = iosDeviceInfo.utsname.release; + _instance.model = iosDeviceInfo.model; + } + return Future.value(_instance); + } +} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 70db5b4..7baee50 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -15,7 +15,7 @@ import 'package:fcs/pages_fcs/package_list.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/offline_redirect.dart'; -import 'package:fcs/widget/right_left_page_route%20copy.dart'; +import 'package:fcs/widget/right_left_page_rout.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index fc16bc5..c408e95 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -114,8 +114,8 @@ class MainModel extends ChangeNotifier { Future _loadSetting() async { try { Services.instance.authService.getSetting().listen((event) { - this.setting = event; - notifyListeners(); + this.setting = event; + notifyListeners(); }); } finally {} // _initSetting(setting); @@ -141,6 +141,7 @@ class MainModel extends ChangeNotifier { } bool isSupport() { + return true; if (packageInfo == null || setting == null) return false; return int.parse(packageInfo.buildNumber) >= setting.supportBuildNum; } diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index 23cb7b6..c6207cb 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index 4b9d268..c518125 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -579,7 +579,6 @@ Widget fcsButton(BuildContext context, String text, {Function callack}) { ); } - -String getLocalString(BuildContext context,String key){ +String getLocalString(BuildContext context, String key) { return AppTranslations.of(context).text(key); -} \ No newline at end of file +} diff --git a/lib/model/firebase_helper.dart b/lib/model/firebase_helper.dart index a1fc131..d7e59b3 100644 --- a/lib/model/firebase_helper.dart +++ b/lib/model/firebase_helper.dart @@ -13,8 +13,9 @@ final FirebaseAuth auth = FirebaseAuth.instance; Future getToken() async { FirebaseUser firebaseUser = await auth.currentUser(); - IdTokenResult token = await firebaseUser.getIdToken(); - return token.token; + // IdTokenResult token = await firebaseUser.getIdToken(); + // return token.token; + return ""; } Stream getQuerySnapshot(String path) { diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index 75f4ae2..845a7e9 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -322,32 +322,33 @@ class MainModel extends ChangeNotifier { var token = result["Token"]; // login with custom token - AuthResult r = await this.auth.signInWithCustomToken(token: token); - this.firebaseUser = r.user; + // AuthResult r = await this.auth.signInWithCustomToken(token: token); + // this.firebaseUser = r.user; isLoaded = false; _loadUser(); _logUser(this.firebaseUser); } Future getProfile(FirebaseUser firebaseUser) async { - IdTokenResult idtoken = await firebaseUser.getIdToken(); + // IdTokenResult idtoken = await firebaseUser.getIdToken(); var data = await requestAPI( "/profile", "GET", - token: idtoken.token, + token: "", //idtoken.token, ); var _token = data["Token"]; - AuthResult a = await this.auth.signInWithCustomToken(token: _token); - return a.user; + // AuthResult a = await this.auth.signInWithCustomToken(token: _token); + // return a.user; + return null; } Future _logUser(FirebaseUser firebaseUser) async { - IdTokenResult idtoken = await firebaseUser.getIdToken(); + // IdTokenResult idtoken = await firebaseUser.getIdToken(); await requestAPI( "/log", "GET", - token: idtoken.token, + token: "", //idtoken.token, ); } diff --git a/lib/vo/user.dart b/lib/vo/user.dart index 4fc0e9f..33dd768 100644 --- a/lib/vo/user.dart +++ b/lib/vo/user.dart @@ -67,13 +67,13 @@ class User { } Future setFirebaseUser(FirebaseUser firebaseUser) async { - IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); - String privileges = idToken.claims["privileges"]; - if (privileges == null || privileges == "") return; - this.claimPrivileges = privileges.split(":").toList(); + // IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); + // String privileges = idToken.claims["privileges"]; + // if (privileges == null || privileges == "") return; + // this.claimPrivileges = privileges.split(":").toList(); - this.accountID = idToken.claims["account_id"]; - this.bizID = idToken.claims["biz_id"]; + // this.accountID = idToken.claims["account_id"]; + // this.bizID = idToken.claims["biz_id"]; } User( diff --git a/lib/widget/local_text.dart b/lib/widget/local_text.dart index d82d907..c6df87e 100644 --- a/lib/widget/local_text.dart +++ b/lib/widget/local_text.dart @@ -1,10 +1,9 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'localization/app_translations.dart'; - class LocalText extends Text { final BuildContext context; LocalText(this.context, String translationKey, diff --git a/lib/widget/offline_redirect.dart b/lib/widget/offline_redirect.dart index 98cccf7..5dc1d43 100644 --- a/lib/widget/offline_redirect.dart +++ b/lib/widget/offline_redirect.dart @@ -27,7 +27,7 @@ class _OfflineRedirectState extends State { } _startOfflineTimer() async { - if (offlineTimer!=null && offlineTimer.isActive) return; + if (offlineTimer != null && offlineTimer.isActive) return; var _duration = new Duration(milliseconds: 500); this.offlineTimer = new Timer.periodic(_duration, offlineNav); } @@ -47,6 +47,6 @@ class _OfflineRedirectState extends State { @override Widget build(BuildContext context) { - return widget.child; + return SafeArea(child: widget.child); } } diff --git a/lib/widget/right_left_page_route copy.dart b/lib/widget/right_left_page_rout.dart similarity index 100% rename from lib/widget/right_left_page_route copy.dart rename to lib/widget/right_left_page_rout.dart diff --git a/pubspec.yaml b/pubspec.yaml index c377aaf..92cfb2c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,8 @@ dependencies: firebase_core: ^0.4.3+2 cloud_firestore: ^0.13.0+1 firebase_storage: ^3.1.0 - firebase_auth: ^0.14.0 + firebase_auth: ^0.16.1 + #firebase_auth: ^0.15.5+3 firebase_messaging: ^6.0.15 provider: ^4.3.2+1 flutter_launcher_icons: "^0.7.2"