From e1b0d56cfda1ef0576a8def0e27f4fdeaf1f72a2 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Sun, 13 Jul 2025 11:49:58 +0300 Subject: [PATCH] firebase prod setup and flavors enhancement. --- .vscode/launch.json | 4 +- android/app/build.gradle | 6 +- android/app/src/dev/google-services.json | 68 ++- android/app/src/main/AndroidManifest.xml | 2 +- android/app/src/prod/google-services.json | 12 +- android/app/src/staging/google-services.json | 30 ++ firebase.json | 2 +- ios/Podfile.lock | 270 ++++-------- ios/Runner.xcodeproj/project.pbxproj | 400 +++++++++++++++++- .../xcshareddata/xcschemes/dev.xcscheme | 2 + .../xcshareddata/xcschemes/staging.xcscheme | 89 ++++ ios/Runner/GoogleService-Info.plist | 32 ++ ios/Runner/Info.plist | 4 +- ios/config/dev/GoogleService-Info.plist | 14 +- ios/config/prod/GoogleService-Info.plist | 14 +- ios/config/staging/GoogleService-Info.plist | 32 ++ lib/firebase_options.dart | 41 ++ lib/firebase_options_dev.dart | 52 +-- lib/firebase_options_prod.dart | 9 +- lib/firebase_options_staging.dart | 78 ++++ lib/main.dart | 12 +- lib/main_dev.dart | 11 +- lib/main_staging.dart | 56 +++ lib/my_app.dart | 2 +- lib/utils/resource_manager/constants.dart | 2 +- pubspec.lock | 16 + 26 files changed, 939 insertions(+), 321 deletions(-) create mode 100644 android/app/src/staging/google-services.json create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme create mode 100644 ios/Runner/GoogleService-Info.plist create mode 100644 ios/config/staging/GoogleService-Info.plist create mode 100644 lib/firebase_options.dart create mode 100644 lib/firebase_options_staging.dart create mode 100644 lib/main_staging.dart diff --git a/.vscode/launch.json b/.vscode/launch.json index 0f3fb8e..f917f78 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -36,11 +36,11 @@ "--flavor", - "prod", + "staging", "-t", - "lib/main.dart" + "lib/main_staging.dart" ], diff --git a/android/app/build.gradle b/android/app/build.gradle index c3f2b53..405672a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -54,7 +54,11 @@ android { productFlavors { dev { dimension "env" - applicationId "com.syncrow.mobile" + applicationId "com.syncrow.mobile.dev" + } + staging { + dimension "env" + applicationId "com.syncrow.mobile.staging" } prod { dimension "env" diff --git a/android/app/src/dev/google-services.json b/android/app/src/dev/google-services.json index 2d0eb1e..90dc1e5 100644 --- a/android/app/src/dev/google-services.json +++ b/android/app/src/dev/google-services.json @@ -1,48 +1,30 @@ { - "project_info": { - "project_number": "427332280600", - "project_id": "test2-8a3d2", - "storage_bucket": "test2-8a3d2.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:427332280600:android:550f67441246cb1a0c7e6d", - "android_client_info": { - "package_name": "com.example.syncrow" - } - }, - "oauth_client": [], - "api_key": [ - { - "current_key": "AIzaSyA5qOErxdm0zJmoHIB0TixfebYEsNRpwV0" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [] - } + "project_info": { + "project_number": "255001682464", + "firebase_url": "https://syncrow-prod-79446-default-rtdb.firebaseio.com", + "project_id": "syncrow-prod-79446", + "storage_bucket": "syncrow-prod-79446.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:255001682464:android:40e1d92346106850561245", + "android_client_info": { + "package_name": "com.syncrow.mobile.dev" } }, - { - "client_info": { - "mobilesdk_app_id": "1:427332280600:android:bb6047adeeb80fb00c7e6d", - "android_client_info": { - "package_name": "com.syncrow.mobile" - } - }, - "oauth_client": [], - "api_key": [ - { - "current_key": "AIzaSyA5qOErxdm0zJmoHIB0TixfebYEsNRpwV0" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [] - } + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyARJ5Wx2Uf8sbmb-AHB8WVfFwEFzrCIOKY" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] } } - ], - "configuration_version": "1" - } \ No newline at end of file + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index af54955..2ff6029 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -14,7 +14,7 @@ android:icon="@mipmap/ic_launcher" android:allowBackup="false"> 11.13.0) + - Firebase/Crashlytics (11.13.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.6.0) - - Firebase/CoreOnly (11.6.0): - - FirebaseCore (~> 11.6.0) - - Firebase/Crashlytics (11.6.0): + - FirebaseCrashlytics (~> 11.13.0) + - Firebase/Database (11.13.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 11.6.0) - - Firebase/Database (11.6.0): - - Firebase/CoreOnly - - FirebaseDatabase (~> 11.6.0) - - firebase_analytics (11.4.0): - - Firebase/Analytics (= 11.6.0) + - FirebaseDatabase (~> 11.13.0) + - firebase_core (3.14.0): + - Firebase/CoreOnly (= 11.13.0) + - Flutter + - firebase_crashlytics (4.3.7): + - Firebase/Crashlytics (= 11.13.0) - firebase_core - Flutter - - firebase_core (3.10.0): - - Firebase/CoreOnly (= 11.6.0) - - Flutter - - firebase_crashlytics (4.3.0): - - Firebase/Crashlytics (= 11.6.0) + - firebase_database (11.3.7): + - Firebase/Database (= 11.13.0) - firebase_core - Flutter - - firebase_database (11.3.0): - - Firebase/Database (= 11.6.0) - - firebase_core - - Flutter - - FirebaseAnalytics (11.6.0): - - FirebaseAnalytics/AdIdSupport (= 11.6.0) - - FirebaseCore (~> 11.6.0) - - FirebaseInstallations (~> 11.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.6.0): - - FirebaseCore (~> 11.6.0) - - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - nanopb (~> 3.30910.0) - - FirebaseAppCheckInterop (11.6.0) - - FirebaseCore (11.6.0): - - FirebaseCoreInternal (~> 11.6.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreExtension (11.6.0): - - FirebaseCore (~> 11.6.0) - - FirebaseCoreInternal (11.6.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseCrashlytics (11.6.0): - - FirebaseCore (~> 11.6.0) + - FirebaseAppCheckInterop (11.15.0) + - FirebaseCore (11.13.0): + - FirebaseCoreInternal (~> 11.13.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreExtension (11.13.0): + - FirebaseCore (~> 11.13.0) + - FirebaseCoreInternal (11.13.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseCrashlytics (11.13.0): + - FirebaseCore (~> 11.13.0) - FirebaseInstallations (~> 11.0) - FirebaseRemoteConfigInterop (~> 11.0) - FirebaseSessions (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Environment (~> 8.1) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseDatabase (11.6.0): + - FirebaseDatabase (11.13.0): - FirebaseAppCheckInterop (~> 11.0) - - FirebaseCore (~> 11.6.0) + - FirebaseCore (~> 11.13.0) - FirebaseSharedSwift (~> 11.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.1) - leveldb-library (~> 1.22) - - FirebaseInstallations (11.6.0): - - FirebaseCore (~> 11.6.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseInstallations (11.13.0): + - FirebaseCore (~> 11.13.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseRemoteConfigInterop (11.6.0) - - FirebaseSessions (11.6.0): - - FirebaseCore (~> 11.6.0) - - FirebaseCoreExtension (~> 11.6.0) + - FirebaseRemoteConfigInterop (11.15.0) + - FirebaseSessions (11.13.0): + - FirebaseCore (~> 11.13.0) + - FirebaseCoreExtension (~> 11.13.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - PromisesSwift (~> 2.1) - - FirebaseSharedSwift (11.6.0) + - FirebaseSharedSwift (11.15.0) - Flutter (1.0.0) - flutter_secure_storage (6.0.0): - Flutter - - GoogleAppMeasurement (11.6.0): - - GoogleAppMeasurement/AdIdSupport (= 11.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.6.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.6.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.6.0): - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - nanopb (~> 3.30910.0) - GoogleDataTransport (10.1.0): - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - GoogleUtilities/AppDelegateSwizzler (8.0.2): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network + - GoogleUtilities/Environment (8.1.0): - GoogleUtilities/Privacy - - GoogleUtilities/Environment (8.0.2): - - GoogleUtilities/Privacy - - GoogleUtilities/Logger (8.0.2): + - GoogleUtilities/Logger (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/MethodSwizzler (8.0.2): - - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib (8.1.0)": - 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/Privacy (8.1.0) + - GoogleUtilities/UserDefaults (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - image_picker_ios (0.0.1): @@ -148,55 +85,6 @@ PODS: - nanopb/encode (= 3.30910.0) - nanopb/decode (3.30910.0) - nanopb/encode (3.30910.0) - - onesignal_flutter (5.2.0): - - Flutter - - OneSignalXCFramework (= 5.2.0) - - OneSignalXCFramework (5.2.0): - - OneSignalXCFramework/OneSignalComplete (= 5.2.0) - - OneSignalXCFramework/OneSignal (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalExtension - - OneSignalXCFramework/OneSignalLiveActivities - - OneSignalXCFramework/OneSignalNotifications - - OneSignalXCFramework/OneSignalOSCore - - OneSignalXCFramework/OneSignalOutcomes - - OneSignalXCFramework/OneSignalUser - - OneSignalXCFramework/OneSignalComplete (5.2.0): - - OneSignalXCFramework/OneSignal - - OneSignalXCFramework/OneSignalInAppMessages - - OneSignalXCFramework/OneSignalLocation - - OneSignalXCFramework/OneSignalCore (5.2.0) - - OneSignalXCFramework/OneSignalExtension (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalOutcomes - - OneSignalXCFramework/OneSignalInAppMessages (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalNotifications - - OneSignalXCFramework/OneSignalOSCore - - OneSignalXCFramework/OneSignalOutcomes - - OneSignalXCFramework/OneSignalUser - - OneSignalXCFramework/OneSignalLiveActivities (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalOSCore - - OneSignalXCFramework/OneSignalUser - - OneSignalXCFramework/OneSignalLocation (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalNotifications - - OneSignalXCFramework/OneSignalOSCore - - OneSignalXCFramework/OneSignalUser - - OneSignalXCFramework/OneSignalNotifications (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalExtension - - OneSignalXCFramework/OneSignalOutcomes - - OneSignalXCFramework/OneSignalOSCore (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalOutcomes (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalUser (5.2.0): - - OneSignalXCFramework/OneSignalCore - - OneSignalXCFramework/OneSignalNotifications - - OneSignalXCFramework/OneSignalOSCore - - OneSignalXCFramework/OneSignalOutcomes - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS @@ -210,7 +98,7 @@ PODS: - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - - sqflite (0.0.3): + - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - url_launcher_ios (0.0.1): @@ -218,25 +106,22 @@ PODS: DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - - firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`) - firebase_database (from `.symlinks/plugins/firebase_database/ios`) - Flutter (from `Flutter`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - onesignal_flutter (from `.symlinks/plugins/onesignal_flutter/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - sqflite (from `.symlinks/plugins/sqflite/darwin`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) SPEC REPOS: trunk: - Firebase - - FirebaseAnalytics - FirebaseAppCheckInterop - FirebaseCore - FirebaseCoreExtension @@ -247,20 +132,16 @@ SPEC REPOS: - FirebaseRemoteConfigInterop - FirebaseSessions - FirebaseSharedSwift - - GoogleAppMeasurement - GoogleDataTransport - GoogleUtilities - leveldb-library - nanopb - - OneSignalXCFramework - PromisesObjC - PromisesSwift EXTERNAL SOURCES: device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" - firebase_analytics: - :path: ".symlinks/plugins/firebase_analytics/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" firebase_crashlytics: @@ -273,8 +154,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_secure_storage/ios" image_picker_ios: :path: ".symlinks/plugins/image_picker_ios/ios" - onesignal_flutter: - :path: ".symlinks/plugins/onesignal_flutter/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: @@ -283,47 +162,42 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" - sqflite: - :path: ".symlinks/plugins/sqflite/darwin" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 - Firebase: 374a441a91ead896215703a674d58cdb3e9d772b - firebase_analytics: 07bd7cfbac54bfcdccf2bb2530f9a65486f7ef3f - firebase_core: feb37e79f775c2bd08dd35e02d83678291317e10 - firebase_crashlytics: 609a5f6f4a2f5af9e40a68182e0c1be3ca2a02f6 - firebase_database: adc9efd0b70cdc8d1e6f3c9f6bb054a625c4f45d - FirebaseAnalytics: 7114c698cac995602e3b1b96663473e50d54d6e7 - FirebaseAppCheckInterop: 347aa09a805219a31249b58fc956888e9fcb314b - FirebaseCore: 48b0dd707581cf9c1a1220da68223fb0a562afaa - FirebaseCoreExtension: 2d77d6430c16cf43ca2b04608302ed02b3598361 - FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2 - FirebaseCrashlytics: b21c665fb50138766480bce73ebdb1aa30f7f300 - FirebaseDatabase: ce3a83a39ab50559a85c5add54f6f285544433b8 - FirebaseInstallations: efc0946fc756e4d22d8113f7c761948120322e8c - FirebaseRemoteConfigInterop: e75e348953352a000331eb77caf01e424248e176 - FirebaseSessions: 9529d14180868e29a8da164b3a729c036204918b - FirebaseSharedSwift: a4e5dfca3e210633bb3a3dfb94176c019211948b + device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe + Firebase: 3435bc66b4d494c2f22c79fd3aae4c1db6662327 + firebase_core: 700bac7ed92bb754fd70fbf01d72b36ecdd6d450 + firebase_crashlytics: d101fbdc2dba187f483f13ae3ce9281779d664db + firebase_database: c808dcb003584f9925917e3b84c2a6547de31117 + FirebaseAppCheckInterop: 06fe5a3799278ae4667e6c432edd86b1030fa3df + FirebaseCore: c692c7f1c75305ab6aff2b367f25e11d73aa8bd0 + FirebaseCoreExtension: c048485c347616dba6165358dbef765c5197597b + FirebaseCoreInternal: 29d7b3af4aaf0b8f3ed20b568c13df399b06f68c + FirebaseCrashlytics: 8281e577b6f85a08ea7aeb8b66f95e1ae430c943 + FirebaseDatabase: 56862f137a44061ca740bc05c57285fffb27becc + FirebaseInstallations: 0ee9074f2c1e86561ace168ee1470dc67aabaf02 + FirebaseRemoteConfigInterop: 1c6135e8a094cc6368949f5faeeca7ee8948b8aa + FirebaseSessions: eaa8ec037e7793769defe4201c20bd4d976f9677 + FirebaseSharedSwift: e17c654ef1f1a616b0b33054e663ad1035c8fd40 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - GoogleAppMeasurement: 6a9e6317b6a6d810ad03d4a66564ca6c4c5818a3 + flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 - GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a leveldb-library: cc8b8f8e013647a295ad3f8cd2ddf49a6f19be19 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - onesignal_flutter: 5ce68a29861960168e81101cb1bd685d264361de - OneSignalXCFramework: bdf74fdc06888f9466dc21e826fe1549ed143095 - path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 - sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d PODFILE CHECKSUM: deba6d843ff3cf709e6e9051ce6601a587b24105 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 798bca4..70e48da 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -3,11 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 60; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 1D86ABCDEBDE5C18BA4024D4 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C7C3AF69AC7495E5213543A5 /* 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 */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; @@ -50,11 +51,15 @@ 274C82CD6955A1499B0B1ECC /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 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; }; + 360705D89E99475E029CC3CB /* Pods-RunnerTests.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-staging.xcconfig"; sourceTree = ""; }; + 366027C8C73E30993A6559C1 /* Pods-RunnerTests.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-staging.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 4F6A2F89436864C7EE769652 /* Pods-RunnerTests.profile-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-dev.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-dev.xcconfig"; sourceTree = ""; }; 54B9D4926B53AAFC49A54F19 /* Pods-Runner.release-prod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-prod.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-prod.xcconfig"; sourceTree = ""; }; + 66EDA61B784317B71C06349D /* Pods-RunnerTests.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-staging.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 = ""; }; + 78F71F362D8018E4EEE452EB /* Pods-Runner.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; 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 = ""; }; @@ -64,7 +69,10 @@ 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 = ""; }; 9D1B204BC7CD29434FE9D537 /* Pods-Runner.profile-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-dev.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-dev.xcconfig"; sourceTree = ""; }; + B83F7E68D31337B2EE230E7E /* Pods-Runner.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig"; sourceTree = ""; }; C33EAABFBF3F560A8EFB0BC0 /* Pods-RunnerTests.release-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-dev.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-dev.xcconfig"; sourceTree = ""; }; + C7C3AF69AC7495E5213543A5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + D4A8BEAA2CBF924DE3581BD1 /* Pods-Runner.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig"; sourceTree = ""; }; E0A467016A4C6B17ECA05534 /* Pods-Runner.profile-prod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-prod.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-prod.xcconfig"; sourceTree = ""; }; E2512B7B8C737577EB9DB570 /* Pods-RunnerTests.debug-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-dev.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-dev.xcconfig"; sourceTree = ""; }; F5E8A17F8AB7D50983179FD3 /* Pods-Runner.debug-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-dev.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-dev.xcconfig"; sourceTree = ""; }; @@ -108,6 +116,12 @@ C33EAABFBF3F560A8EFB0BC0 /* Pods-RunnerTests.release-dev.xcconfig */, 0D60D6C4BBD804473BD9E4A0 /* Pods-RunnerTests.profile-prod.xcconfig */, 4F6A2F89436864C7EE769652 /* Pods-RunnerTests.profile-dev.xcconfig */, + D4A8BEAA2CBF924DE3581BD1 /* Pods-Runner.debug-staging.xcconfig */, + B83F7E68D31337B2EE230E7E /* Pods-Runner.release-staging.xcconfig */, + 78F71F362D8018E4EEE452EB /* Pods-Runner.profile-staging.xcconfig */, + 366027C8C73E30993A6559C1 /* Pods-RunnerTests.debug-staging.xcconfig */, + 66EDA61B784317B71C06349D /* Pods-RunnerTests.release-staging.xcconfig */, + 360705D89E99475E029CC3CB /* Pods-RunnerTests.profile-staging.xcconfig */, ); path = Pods; sourceTree = ""; @@ -149,6 +163,7 @@ 331C8082294A63A400263BE5 /* RunnerTests */, 2F70EB4341A83C900EB253DC /* Pods */, 61B46FA3FB0932D29E3C6E47 /* Frameworks */, + C7C3AF69AC7495E5213543A5 /* GoogleService-Info.plist */, ); sourceTree = ""; }; @@ -278,6 +293,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + 1D86ABCDEBDE5C18BA4024D4 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -292,14 +308,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; @@ -337,7 +349,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\n#!/bin/bash\nPATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols --platform=ios --apple-project-path=${SRCROOT} --env-platform-name=${PLATFORM_NAME} --env-configuration=${CONFIGURATION} --env-project-dir=${PROJECT_DIR} --env-built-products-dir=${BUILT_PRODUCTS_DIR} --env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH} --env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME} --env-infoplist-path=${INFOPLIST_PATH} --default-config=default\n"; + shellScript = "\n#!/bin/bash\nPATH=\"${PATH}:$FLUTTER_ROOT/bin:${PUB_CACHE}/bin:$HOME/.pub-cache/bin\"\n\nif [ -z \"$PODS_ROOT\" ] || [ ! -d \"$PODS_ROOT/FirebaseCrashlytics\" ]; then\n # Cannot use \"BUILD_DIR%/Build/*\" as per Firebase documentation, it points to \"flutter-project/build/ios/*\" path which doesn't have run script\n DERIVED_DATA_PATH=$(echo \"$BUILD_ROOT\" | sed -E 's|(.*DerivedData/[^/]+).*|\\1|')\n PATH_TO_CRASHLYTICS_UPLOAD_SCRIPT=\"${DERIVED_DATA_PATH}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\nelse\n PATH_TO_CRASHLYTICS_UPLOAD_SCRIPT=\"$PODS_ROOT/FirebaseCrashlytics/run\"\nfi\n\n# Command to upload symbols script used to upload symbols to Firebase server\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=\"$PATH_TO_CRASHLYTICS_UPLOAD_SCRIPT\" --platform=ios --apple-project-path=\"${SRCROOT}\" --env-platform-name=\"${PLATFORM_NAME}\" --env-configuration=\"${CONFIGURATION}\" --env-project-dir=\"${PROJECT_DIR}\" --env-built-products-dir=\"${BUILT_PRODUCTS_DIR}\" --env-dwarf-dsym-folder-path=\"${DWARF_DSYM_FOLDER_PATH}\" --env-dwarf-dsym-file-name=\"${DWARF_DSYM_FILE_NAME}\" --env-infoplist-path=\"${INFOPLIST_PATH}\" --default-config=default\n"; }; 6CF71F42A45B39E9945C8410 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; @@ -347,14 +359,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; @@ -413,7 +421,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Get a reference to the destination location for the GoogleService-Info.plist\n# This is the default location where Firebase init code expects to find GoogleServices-Info.plist file.\nPLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\n# We have named our Build Configurations as Debug-dev, Debug-prod etc.\n# Here, dev and prod are the scheme names. This kind of naming is required by Flutter for flavors to work.\n# We are using the $CONFIGURATION variable available in the XCode build environment to get the build configuration.\nif [ \"${CONFIGURATION}\" == \"Debug-prod\" ] || [ \"${CONFIGURATION}\" == \"Release-prod\" ] || [ \"${CONFIGURATION}\" == \"Profile-prod\" ] || [ \"${CONFIGURATION}\" == \"Release\" ]; then\ncp \"${PROJECT_DIR}/config/prod/GoogleService-Info.plist\" \"${PLIST_DESTINATION}/GoogleService-Info.plist\"\necho \"Production plist copied\"\nelif [ \"${CONFIGURATION}\" == \"Debug-dev\" ] || [ \"${CONFIGURATION}\" == \"Release-dev\" ] || [ \"${CONFIGURATION}\" == \"Profile-dev\" ] || [ \"${CONFIGURATION}\" == \"Debug\" ]; then\ncp \"${PROJECT_DIR}/config/dev/GoogleService-Info.plist\" \"${PLIST_DESTINATION}/GoogleService-Info.plist\"\necho \"Development plist copied\"\nfi\n"; + shellScript = "# Get a reference to the destination location for the GoogleService-Info.plist\n# This is the default location where Firebase init code expects to find GoogleServices-Info.plist file.\nPLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\n# We have named our Build Configurations as Debug-dev, Debug-prod etc.\n# Here, dev and prod are the scheme names. This kind of naming is required by Flutter for flavors to work.\n# We are using the $CONFIGURATION variable available in the XCode build environment to get the build configuration.\nif [ \"${CONFIGURATION}\" == \"Debug-prod\" ] || [ \"${CONFIGURATION}\" == \"Release-prod\" ] || [ \"${CONFIGURATION}\" == \"Profile-prod\" ] || [ \"${CONFIGURATION}\" == \"Release\" ]; then\ncp \"${PROJECT_DIR}/config/prod/GoogleService-Info.plist\" \"${PLIST_DESTINATION}/GoogleService-Info.plist\"\necho \"Production plist copied\"\nelif [ \"${CONFIGURATION}\" == \"Debug-staging\" ] || [ \"${CONFIGURATION}\" == \"Release-staging\" ] || [ \"${CONFIGURATION}\" == \"Profile-staging\" ]; then\ncp \"${PROJECT_DIR}/config/staging/GoogleService-Info.plist\" \"${PLIST_DESTINATION}/GoogleService-Info.plist\"\necho \"Staging plist copied\"\nelif [ \"${CONFIGURATION}\" == \"Debug-dev\" ] || [ \"${CONFIGURATION}\" == \"Release-dev\" ] || [ \"${CONFIGURATION}\" == \"Profile-dev\" ] || [ \"${CONFIGURATION}\" == \"Debug\" ]; then\ncp \"${PROJECT_DIR}/config/dev/GoogleService-Info.plist\" \"${PLIST_DESTINATION}/GoogleService-Info.plist\"\necho \"Development plist copied\"\nfi\n"; }; BF71A0E0099ADA10FE9B580A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -533,6 +541,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -545,16 +554,19 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = ""; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -620,6 +632,325 @@ }; name = "Profile-prod"; }; + 3483022B2E23986E0002E53F /* Debug-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug-staging"; + }; + 3483022C2E23986E0002E53F /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; + DEVELOPMENT_TEAM = 48V27SBR8J; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SyncOS; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.5; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Debug-staging"; + }; + 3483022D2E23986E0002E53F /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 366027C8C73E30993A6559C1 /* Pods-RunnerTests.debug-staging.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.syncrowApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Debug-staging"; + }; + 3483022E2E2398790002E53F /* Release-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = "Release-staging"; + }; + 3483022F2E2398790002E53F /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; + DEVELOPMENT_TEAM = 48V27SBR8J; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SyncOS; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.5; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Release-staging"; + }; + 348302302E2398790002E53F /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 66EDA61B784317B71C06349D /* Pods-RunnerTests.release-staging.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.syncrowApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Release-staging"; + }; + 348302312E2398800002E53F /* Profile-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = "Profile-staging"; + }; + 348302322E2398800002E53F /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; + DEVELOPMENT_TEAM = 48V27SBR8J; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SyncOS; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0.5; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.staging; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Profile-staging"; + }; + 348302332E2398800002E53F /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 360705D89E99475E029CC3CB /* Pods-RunnerTests.profile-staging.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.syncrowApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Profile-staging"; + }; 97C147031CF9000F007C117D /* Debug-prod */ = { isa = XCBuildConfiguration; buildSettings = { @@ -673,6 +1004,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -724,6 +1056,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -738,16 +1071,19 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = ""; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -769,16 +1105,19 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = ""; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -847,6 +1186,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -857,23 +1197,26 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.5; - PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -947,6 +1290,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -961,23 +1305,26 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.5; - PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -1048,6 +1395,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1060,23 +1408,26 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = AppIcon; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 31; + DART_DEBUG_BONJOUR_SERVICE = _dartobservatory._tcp; DEVELOPMENT_TEAM = 48V27SBR8J; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SyncOS; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSLocalNetworkUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; + INFOPLIST_KEY_NSNetworkVolumesUsageDescription = "SyncOS needs to access the local network to discover and connect to SyncOS devices."; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.5; - PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex; + PRODUCT_BUNDLE_IDENTIFIER = com.syncrow.iot.ex.dev; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -1108,10 +1459,13 @@ isa = XCConfigurationList; buildConfigurations = ( 331C8088294A63A400263BE5 /* Debug-prod */, + 3483022D2E23986E0002E53F /* Debug-staging */, B07E4A0E2C9B8C45001F6910 /* Debug-dev */, 331C8089294A63A400263BE5 /* Release-prod */, + 348302302E2398790002E53F /* Release-staging */, B07E4A112C9B8C52001F6910 /* Release-dev */, 331C808A294A63A400263BE5 /* Profile-prod */, + 348302332E2398800002E53F /* Profile-staging */, B07E4A142C9B8C5C001F6910 /* Profile-dev */, ); defaultConfigurationIsVisible = 0; @@ -1121,10 +1475,13 @@ isa = XCConfigurationList; buildConfigurations = ( 97C147031CF9000F007C117D /* Debug-prod */, + 3483022B2E23986E0002E53F /* Debug-staging */, B07E4A0C2C9B8C45001F6910 /* Debug-dev */, 97C147041CF9000F007C117D /* Release-prod */, + 3483022E2E2398790002E53F /* Release-staging */, B07E4A0F2C9B8C52001F6910 /* Release-dev */, 249021D3217E4FDB00AE95B9 /* Profile-prod */, + 348302312E2398800002E53F /* Profile-staging */, B07E4A122C9B8C5C001F6910 /* Profile-dev */, ); defaultConfigurationIsVisible = 0; @@ -1134,10 +1491,13 @@ isa = XCConfigurationList; buildConfigurations = ( 97C147061CF9000F007C117D /* Debug-prod */, + 3483022C2E23986E0002E53F /* Debug-staging */, B07E4A0D2C9B8C45001F6910 /* Debug-dev */, 97C147071CF9000F007C117D /* Release-prod */, + 3483022F2E2398790002E53F /* Release-staging */, B07E4A102C9B8C52001F6910 /* Release-dev */, 249021D4217E4FDB00AE95B9 /* Profile-prod */, + 348302322E2398800002E53F /* Profile-staging */, B07E4A132C9B8C5C001F6910 /* Profile-dev */, ); defaultConfigurationIsVisible = 0; diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/dev.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/dev.xcscheme index d97df11..d5f9abc 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/dev.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/dev.xcscheme @@ -26,6 +26,7 @@ buildConfiguration = "Debug-dev" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES" shouldAutocreateTestPlan = "YES"> @@ -33,6 +34,7 @@ buildConfiguration = "Debug-dev" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme new file mode 100644 index 0000000..b58cdb0 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..a75246e --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,32 @@ + + + + + API_KEY + AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A + GCM_SENDER_ID + 255001682464 + PLIST_VERSION + 1 + BUNDLE_ID + com.syncrow.iot.ex + PROJECT_ID + syncrow-prod-79446 + STORAGE_BUCKET + syncrow-prod-79446.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:255001682464:ios:40f00bf201768612561245 + DATABASE_URL + https://syncrow-prod-79446-default-rtdb.firebaseio.com + + \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 85b5739..19ab9b1 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Syncrow App + SyncOS CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -31,6 +31,8 @@ LSRequiresIPhoneOS + NSLocalNetworkUsageDescription + SyncOS needs to access the local network to discover and connect to SyncOS devices. NSPhotoLibraryUsageDescription We need access to your photo library to allow you to select and upload photos. UIApplicationSupportsIndirectInputEvents diff --git a/ios/config/dev/GoogleService-Info.plist b/ios/config/dev/GoogleService-Info.plist index 196076a..0d52f28 100644 --- a/ios/config/dev/GoogleService-Info.plist +++ b/ios/config/dev/GoogleService-Info.plist @@ -3,17 +3,17 @@ API_KEY - AIzaSyABnpH6yo2RRjtkp4PlvtK84hKwRm2DhBw + AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A GCM_SENDER_ID - 427332280600 + 255001682464 PLIST_VERSION 1 BUNDLE_ID - com.example.syncrow.app + com.syncrow.iot.ex.dev PROJECT_ID - test2-8a3d2 + syncrow-prod-79446 STORAGE_BUCKET - test2-8a3d2.appspot.com + syncrow-prod-79446.firebasestorage.app IS_ADS_ENABLED IS_ANALYTICS_ENABLED @@ -25,6 +25,8 @@ IS_SIGNIN_ENABLED GOOGLE_APP_ID - 1:427332280600:ios:c904c0a7a19a4ed90c7e6d + 1:255001682464:ios:40f00bf201768612561245 + DATABASE_URL + https://syncrow-prod-79446-default-rtdb.firebaseio.com \ No newline at end of file diff --git a/ios/config/prod/GoogleService-Info.plist b/ios/config/prod/GoogleService-Info.plist index e55f72e..a75246e 100644 --- a/ios/config/prod/GoogleService-Info.plist +++ b/ios/config/prod/GoogleService-Info.plist @@ -3,17 +3,17 @@ API_KEY - AIzaSyAWlRiuJ75FMlf2_UDdri1voWKvkaSHtRg + AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A GCM_SENDER_ID - 786692570726 + 255001682464 PLIST_VERSION 1 BUNDLE_ID - com.example.syncrow.app + com.syncrow.iot.ex PROJECT_ID - syncrow-staging + syncrow-prod-79446 STORAGE_BUCKET - syncrow-staging.appspot.com + syncrow-prod-79446.firebasestorage.app IS_ADS_ENABLED IS_ANALYTICS_ENABLED @@ -25,8 +25,8 @@ IS_SIGNIN_ENABLED GOOGLE_APP_ID - 1:786692570726:ios:455a6fcff77e130f17b7a7 + 1:255001682464:ios:40f00bf201768612561245 DATABASE_URL - https://syncrow-staging-default-rtdb.firebaseio.com + https://syncrow-prod-79446-default-rtdb.firebaseio.com \ No newline at end of file diff --git a/ios/config/staging/GoogleService-Info.plist b/ios/config/staging/GoogleService-Info.plist new file mode 100644 index 0000000..9b10bc5 --- /dev/null +++ b/ios/config/staging/GoogleService-Info.plist @@ -0,0 +1,32 @@ + + + + + API_KEY + AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A + GCM_SENDER_ID + 255001682464 + PLIST_VERSION + 1 + BUNDLE_ID + com.syncrow.iot.ex.staging + PROJECT_ID + syncrow-prod-79446 + STORAGE_BUCKET + syncrow-prod-79446.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:255001682464:ios:40f00bf201768612561245 + DATABASE_URL + https://syncrow-prod-79446-default-rtdb.firebaseio.com + + \ No newline at end of file diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart new file mode 100644 index 0000000..4d4d3c1 --- /dev/null +++ b/lib/firebase_options.dart @@ -0,0 +1,41 @@ +// 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 kIsWeb; +import 'package:syncrow_app/firebase_options_dev.dart' as dev; +import 'package:syncrow_app/firebase_options_prod.dart' as prod; +import 'package:syncrow_app/firebase_options_staging.dart' as staging; + +/// 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 { + const flavor = String.fromEnvironment('flavor'); + if (kIsWeb) { + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for web - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + } + switch (flavor) { + case 'dev': + return dev.DefaultFirebaseOptions.currentPlatform; + case 'staging': + return staging.DefaultFirebaseOptions.currentPlatform; + case 'prod': + return prod.DefaultFirebaseOptions.currentPlatform; + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this flavor.', + ); + } + } +} diff --git a/lib/firebase_options_dev.dart b/lib/firebase_options_dev.dart index 279dd19..bba6dbd 100644 --- a/lib/firebase_options_dev.dart +++ b/lib/firebase_options_dev.dart @@ -1,19 +1,20 @@ // 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; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; /// Default [FirebaseOptions] for use with your Firebase apps. /// /// Example: /// ```dart -/// import 'firebase_options.dart'; +/// import 'firebase_options_dev.dart'; /// // ... /// await Firebase.initializeApp( /// options: DefaultFirebaseOptions.currentPlatform, /// ); /// ``` -class DefaultFirebaseOptionsDev { +class DefaultFirebaseOptions { static FirebaseOptions get currentPlatform { if (kIsWeb) { return web; @@ -45,30 +46,33 @@ class DefaultFirebaseOptionsDev { } } + static const FirebaseOptions web = FirebaseOptions( + apiKey: 'AIzaSyDgq5ywsnFVbbQO-Xz1Z4sR5bBcuiDaS9g', + appId: '1:255001682464:web:a03e2d6214c13101561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + authDomain: 'syncrow-prod-79446.firebaseapp.com', + databaseURL: 'https://syncrow-staging-79446.asia-southeast1.firebasedatabase.app/', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', + measurementId: 'G-1850Q89RMK', + ); + static const FirebaseOptions android = FirebaseOptions( - apiKey: 'AIzaSyA5qOErxdm0zJmoHIB0TixfebYEsNRpwV0', - appId: '1:427332280600:android:bb6047adeeb80fb00c7e6d', - messagingSenderId: '427332280600', - projectId: 'test2-8a3d2', - storageBucket: 'test2-8a3d2.appspot.com', + apiKey: 'AIzaSyARJ5Wx2Uf8sbmb-AHB8WVfFwEFzrCIOKY', + appId: '1:255001682464:android:55ba58e8297b3cab561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + databaseURL: 'https://syncrow-staging-79446.asia-southeast1.firebasedatabase.app/', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', ); static const FirebaseOptions ios = FirebaseOptions( - apiKey: 'AIzaSyABnpH6yo2RRjtkp4PlvtK84hKwRm2DhBw', - appId: '1:427332280600:ios:373a65cce55a3af40c7e6d', - messagingSenderId: '427332280600', - projectId: 'test2-8a3d2', - storageBucket: 'test2-8a3d2.appspot.com', - iosBundleId: 'com.example.syncrowApp', - ); - - static const FirebaseOptions web = FirebaseOptions( - apiKey: 'AIzaSyCVEvKsJYzhWDFM-9Od68FE0nPpP933st0', - appId: '1:427332280600:web:ad50516a87a35a1a0c7e6d', - messagingSenderId: '427332280600', - projectId: 'test2-8a3d2', - authDomain: 'test2-8a3d2.firebaseapp.com', - storageBucket: 'test2-8a3d2.appspot.com', - measurementId: 'G-Z1RTTTV5H9', + apiKey: 'AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A', + appId: '1:255001682464:ios:8a57c70f7f16f785561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + databaseURL: 'https://syncrow-staging-79446.asia-southeast1.firebasedatabase.app/', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', + iosBundleId: 'com.syncrow.mobile.dev', ); } diff --git a/lib/firebase_options_prod.dart b/lib/firebase_options_prod.dart index 485696b..7050e8f 100644 --- a/lib/firebase_options_prod.dart +++ b/lib/firebase_options_prod.dart @@ -1,7 +1,8 @@ // 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; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; /// Default [FirebaseOptions] for use with your Firebase apps. /// @@ -13,7 +14,7 @@ import 'package:flutter/foundation.dart' show defaultTargetPlatform, kIsWeb, Tar /// options: DefaultFirebaseOptions.currentPlatform, /// ); /// ``` -class DefaultFirebaseOptionsStaging { +class DefaultFirebaseOptions { static FirebaseOptions get currentPlatform { if (kIsWeb) { return web; @@ -59,7 +60,7 @@ class DefaultFirebaseOptionsStaging { appId: '1:786692570726:ios:455a6fcff77e130f17b7a7', messagingSenderId: '786692570726', projectId: 'syncrow-staging', - databaseURL: 'https://syncrow-staging-default-rtdb.firebaseio.com', + databaseURL: 'https://syncrow-prod-79446.asia-southeast1.firebasedatabase.app/', storageBucket: 'syncrow-staging.appspot.com', iosBundleId: 'com.example.syncrow.app', ); @@ -70,7 +71,7 @@ class DefaultFirebaseOptionsStaging { messagingSenderId: '786692570726', projectId: 'syncrow-staging', authDomain: 'syncrow-staging.firebaseapp.com', - databaseURL: 'https://syncrow-staging-default-rtdb.firebaseio.com', + databaseURL: 'https://syncrow-prod-79446.asia-southeast1.firebasedatabase.app/', storageBucket: 'syncrow-staging.appspot.com', measurementId: 'G-CZ3J3G6LMQ', ); diff --git a/lib/firebase_options_staging.dart b/lib/firebase_options_staging.dart new file mode 100644 index 0000000..9fea94e --- /dev/null +++ b/lib/firebase_options_staging.dart @@ -0,0 +1,78 @@ +// 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_staging.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + return web; + } + 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 web = FirebaseOptions( + apiKey: 'AIzaSyDgq5ywsnFVbbQO-Xz1Z4sR5bBcuiDaS9g', + appId: '1:255001682464:web:a03e2d6214c13101561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + authDomain: 'syncrow-prod-79446.firebaseapp.com', + databaseURL: 'https://syncrow-prod-79446-default-rtdb.firebaseio.com', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', + measurementId: 'G-1850Q89RMK', + ); + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyARJ5Wx2Uf8sbmb-AHB8WVfFwEFzrCIOKY', + appId: '1:255001682464:android:ed8920a3067fb40a561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + databaseURL: 'https://syncrow-staging-79446.asia-southeast1.firebasedatabase.app/', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyDeUWSHReSROpDbENGr--F49DH4VRzVM5A', + appId: '1:255001682464:ios:41b89a7702b75227561245', + messagingSenderId: '255001682464', + projectId: 'syncrow-prod-79446', + databaseURL: 'https://syncrow-staging-79446.asia-southeast1.firebasedatabase.app/', + storageBucket: 'syncrow-prod-79446.firebasestorage.app', + iosBundleId: 'com.syncrow.mobile.staging', + ); +} diff --git a/lib/main.dart b/lib/main.dart index c4a3749..9a48571 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,14 +1,16 @@ import 'dart:async'; + import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:syncrow_app/firebase_options_prod.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:syncrow_app/firebase_options.dart'; import 'package:syncrow_app/services/locator.dart'; import 'package:syncrow_app/utils/bloc_observer.dart'; import 'package:syncrow_app/utils/helpers/localization_helpers.dart'; -import 'my_app.dart'; +import 'my_app.dart'; const String buildNumber = '1.0.30+18'; @@ -25,6 +27,10 @@ void main() { // HttpOverrides.global = MyHttpOverrides(); WidgetsFlutterBinding.ensureInitialized(); + if (await Permission.nearbyWifiDevices.request().isGranted) { + // Permission is granted + } + //license for the font // LicenseRegistry.addLicense(() async* { // final license = @@ -36,7 +42,7 @@ void main() { initialSetup(); await Firebase.initializeApp( - options: DefaultFirebaseOptionsStaging.currentPlatform, + options: DefaultFirebaseOptions.currentPlatform, ); //final SharedPreferences prefs = await SharedPreferences.getInstance(); diff --git a/lib/main_dev.dart b/lib/main_dev.dart index 5f13c0a..e2b171a 100644 --- a/lib/main_dev.dart +++ b/lib/main_dev.dart @@ -1,12 +1,15 @@ import 'dart:async'; + import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:syncrow_app/firebase_options_dev.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:syncrow_app/firebase_options.dart'; import 'package:syncrow_app/services/locator.dart'; import 'package:syncrow_app/utils/bloc_observer.dart'; import 'package:syncrow_app/utils/helpers/localization_helpers.dart'; + import 'my_app.dart'; void main() { @@ -22,6 +25,10 @@ void main() { // HttpOverrides.global = MyHttpOverrides(); WidgetsFlutterBinding.ensureInitialized(); + if (await Permission.nearbyWifiDevices.request().isGranted) { + // Permission is granted + } + //license for the font // LicenseRegistry.addLicense(() async* { // final license = @@ -33,7 +40,7 @@ void main() { initialSetup(); await Firebase.initializeApp( - options: DefaultFirebaseOptionsDev.currentPlatform, + options: DefaultFirebaseOptions.currentPlatform, ); //final SharedPreferences prefs = await SharedPreferences.getInstance(); diff --git a/lib/main_staging.dart b/lib/main_staging.dart new file mode 100644 index 0000000..2fe60d3 --- /dev/null +++ b/lib/main_staging.dart @@ -0,0 +1,56 @@ +import 'dart:async'; + +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:syncrow_app/firebase_options_staging.dart'; +import 'package:syncrow_app/services/locator.dart'; +import 'package:syncrow_app/utils/bloc_observer.dart'; +import 'package:syncrow_app/utils/helpers/localization_helpers.dart'; + +import 'my_app.dart'; + +void main() { + //to observe the state of the blocs in the output console + Bloc.observer = MyBlocObserver(); + //to catch all the errors in the app and send them to firebase + runZonedGuarded(() async { + //to load the environment variables + // const environment = String.fromEnvironment('FLAVOR', defaultValue: 'prod'); + await dotenv.load(fileName: '.env.staging'); + + // //this is to make the app work with the self-signed certificate + // HttpOverrides.global = MyHttpOverrides(); + WidgetsFlutterBinding.ensureInitialized(); + + if (await Permission.nearbyWifiDevices.request().isGranted) { + // Permission is granted + } + + //license for the font + // LicenseRegistry.addLicense(() async* { + // final license = + // await rootBundle.loadString('assets/fonts/roboto/LICENSE.txt'); + // yield LicenseEntryWithLineBreaks(['google_fonts'], license); + // }); + + //to initialize the locator + initialSetup(); + + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform, + ); + + //final SharedPreferences prefs = await SharedPreferences.getInstance(); + + //to save the locale in the shared preferences + await LocalizationService.saveLocale(const Locale("en", "AE")); + final savedLocale = await LocalizationService.savedLocale(); + + runApp(MyApp(savedLocale)); + }, (error, stackTrace) { + // FirebaseCrashlytics.instance.recordError(error, stackTrace, fatal: true); + }); +} diff --git a/lib/my_app.dart b/lib/my_app.dart index 9457926..eea4c72 100644 --- a/lib/my_app.dart +++ b/lib/my_app.dart @@ -46,7 +46,7 @@ class MyApp extends StatelessWidget { scaffoldMessengerKey: NavigationService.snackbarKey, debugShowCheckedModeBanner: false, color: ColorsManager.primaryColor, - title: 'Syncrow App', + title: 'SyncOS', onGenerateRoute: router.Router.generateRoute, initialRoute: Routes.splash, themeMode: ThemeMode.system, diff --git a/lib/utils/resource_manager/constants.dart b/lib/utils/resource_manager/constants.dart index 4e4d5b0..a14809e 100644 --- a/lib/utils/resource_manager/constants.dart +++ b/lib/utils/resource_manager/constants.dart @@ -12,7 +12,7 @@ import 'package:syncrow_app/generated/assets.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; abstract class Constants { - static const String appName = "Syncrow App"; + static const String appName = "SyncOS"; static const String languageCode = "en"; diff --git a/pubspec.lock b/pubspec.lock index b6119d9..c15bb1a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -249,6 +249,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.23.0" + firebase_crashlytics: + dependency: "direct main" + description: + name: firebase_crashlytics + sha256: "8cf18604255e964b568e572f1a155b4e3cec9ea31f9043fc51414d33aa444393" + url: "https://pub.dev" + source: hosted + version: "4.3.7" + firebase_crashlytics_platform_interface: + dependency: transitive + description: + name: firebase_crashlytics_platform_interface + sha256: aa81684a68a00c41510070b3c2689fb32264f9b31ad50e62e6c7d6aca483a424 + url: "https://pub.dev" + source: hosted + version: "3.8.7" firebase_database: dependency: "direct main" description: