diff --git a/.DS_Store b/.DS_Store
index bddaf15..798fd37 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/src/.DS_Store b/src/.DS_Store
index 1293aee..69990c8 100644
Binary files a/src/.DS_Store and b/src/.DS_Store differ
diff --git a/src/AppManager.swift b/src/AppManager.swift
new file mode 100644
index 0000000..3a69b95
--- /dev/null
+++ b/src/AppManager.swift
@@ -0,0 +1,20 @@
+import FirebaseMessaging
+
+class FCMTokenManager {
+ static let shared = FCMTokenManager()
+ var fcmToken: String?
+
+ private init() {} // Prevents external instantiation
+
+ func fetchToken() {
+ Messaging.messaging().token { token, error in
+ if let error = error {
+ #if DEBUG
+ print("Error fetching FCM token: \(error.localizedDescription)")
+ #endif
+ } else if let token = token {
+ self.fcmToken = token // Store globally in the singleton
+ }
+ }
+ }
+}
diff --git a/src/Nivesh 2026-05-11 12-04-41/DistributionSummary.plist b/src/Nivesh 2026-05-11 12-04-41/DistributionSummary.plist
new file mode 100644
index 0000000..cecf077
--- /dev/null
+++ b/src/Nivesh 2026-05-11 12-04-41/DistributionSummary.plist
@@ -0,0 +1,151 @@
+
+
+
+
+ Nivesh.ipa
+
+
+ architectures
+
+ arm64
+
+ buildNumber
+ 5
+ certificate
+
+ SHA1
+ B9C389DA51584C4FFC3DABB6E28FA51588CEF558
+ dateExpires
+ 19/01/27
+ type
+ Cloud Managed Apple Distribution
+
+ embeddedBinaries
+
+
+ architectures
+
+ arm64
+
+ buildNumber
+ 1
+ certificate
+
+ SHA1
+ B9C389DA51584C4FFC3DABB6E28FA51588CEF558
+ dateExpires
+ 19/01/27
+ type
+ Cloud Managed Apple Distribution
+
+ name
+ FirebaseAnalytics.framework
+ team
+
+ id
+ 892H6H36S9
+ name
+ Providential Platforms Private Limited
+
+ versionNumber
+ 11.7.0
+
+
+ architectures
+
+ arm64
+
+ buildNumber
+ 1
+ certificate
+
+ SHA1
+ B9C389DA51584C4FFC3DABB6E28FA51588CEF558
+ dateExpires
+ 19/01/27
+ type
+ Cloud Managed Apple Distribution
+
+ name
+ GoogleAppMeasurement.framework
+ team
+
+ id
+ 892H6H36S9
+ name
+ Providential Platforms Private Limited
+
+ versionNumber
+ 11.7.0
+
+
+ architectures
+
+ arm64
+
+ buildNumber
+ 1
+ certificate
+
+ SHA1
+ B9C389DA51584C4FFC3DABB6E28FA51588CEF558
+ dateExpires
+ 19/01/27
+ type
+ Cloud Managed Apple Distribution
+
+ name
+ GoogleAppMeasurementIdentitySupport.framework
+ team
+
+ id
+ 892H6H36S9
+ name
+ Providential Platforms Private Limited
+
+ versionNumber
+ 11.7.0
+
+
+ entitlements
+
+ application-identifier
+ 892H6H36S9.com.nivesh.app
+ aps-environment
+ production
+ com.apple.developer.associated-domains
+
+ applinks:app.nivesh.com
+ webcredentials:app.nivesh.com
+ nivesh.app.link
+ nivesh-alternate.app.link
+
+ com.apple.developer.team-identifier
+ 892H6H36S9
+ get-task-allow
+
+
+ name
+ Nivesh.app
+ profile
+
+ UUID
+ b7ad68a5-d036-47cc-8920-f5f91c05742d
+ dateExpires
+ 19/01/27
+ name
+ iOS Team Ad Hoc Provisioning Profile: com.nivesh.app
+
+ team
+
+ id
+ 892H6H36S9
+ name
+ Providential Platforms Private Limited
+
+ versionNumber
+ 1.3
+
+
+
+
diff --git a/src/Nivesh 2026-05-11 12-04-41/ExportOptions.plist b/src/Nivesh 2026-05-11 12-04-41/ExportOptions.plist
new file mode 100644
index 0000000..b653903
--- /dev/null
+++ b/src/Nivesh 2026-05-11 12-04-41/ExportOptions.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ destination
+ export
+ method
+ release-testing
+ signingStyle
+ automatic
+ stripSwiftSymbols
+
+ teamID
+ 892H6H36S9
+ thinning
+ <none>
+
+
diff --git a/src/Nivesh 2026-05-11 12-04-41/Packaging.log b/src/Nivesh 2026-05-11 12-04-41/Packaging.log
new file mode 100644
index 0000000..0e5d4eb
--- /dev/null
+++ b/src/Nivesh 2026-05-11 12-04-41/Packaging.log
@@ -0,0 +1,1684 @@
+2026-05-11 06:34:28 +0000 Initial pipeline context: ", distributionTask(resolved)="2", distributionDestination(resolved)="1", distributionMethod(resolved)="", team(resolved)="">
+ Chain (16, self inclusive):
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionCreateDestRootStep
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionCopyItemStep
+2026-05-11 06:34:28 +0000 Running /usr/bin/ditto '-V' '/Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app' '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app'
+2026-05-11 06:34:28 +0000 >>> Copying /Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app
+2026-05-11 06:34:28 +0000 copying file ./_CodeSignature/CodeResources ...
+2026-05-11 06:34:28 +0000 21785 bytes for ./_CodeSignature/CodeResources
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 855 bytes for ./Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCore.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 694 bytes for ./Firebase_FirebaseCore.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 1383 bytes for ./Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCrashlytics.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 708 bytes for ./Firebase_FirebaseCrashlytics.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 598 bytes for ./GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 724 bytes for ./GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./nanopb_nanopb.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 374 bytes for ./nanopb_nanopb.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./nanopb_nanopb.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 668 bytes for ./nanopb_nanopb.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./AppIcon60x60@2x.png ...
+2026-05-11 06:34:28 +0000 4943 bytes for ./AppIcon60x60@2x.png
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 746 bytes for ./GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 720 bytes for ./GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 1105 bytes for ./Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseInstallations.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 712 bytes for ./Firebase_FirebaseInstallations.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 855 bytes for ./Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCoreInternal.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 710 bytes for ./Firebase_FirebaseCoreInternal.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 2102 bytes for ./Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseAuth.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 694 bytes for ./Firebase_FirebaseAuth.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 720 bytes for ./GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 732 bytes for ./GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 2357 bytes for ./Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseMessaging.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 704 bytes for ./Firebase_FirebaseMessaging.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleService-Info.plist ...
+2026-05-11 06:34:28 +0000 807 bytes for ./GoogleService-Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib ...
+2026-05-11 06:34:28 +0000 996 bytes for ./Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib ...
+2026-05-11 06:34:28 +0000 2999 bytes for ./Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/Main.storyboardc/Info.plist ...
+2026-05-11 06:34:28 +0000 258 bytes for ./Base.lproj/Main.storyboardc/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib ...
+2026-05-11 06:34:28 +0000 2834 bytes for ./Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib ...
+2026-05-11 06:34:28 +0000 924 bytes for ./Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
+2026-05-11 06:34:28 +0000 copying file ./Base.lproj/LaunchScreen.storyboardc/Info.plist ...
+2026-05-11 06:34:28 +0000 258 bytes for ./Base.lproj/LaunchScreen.storyboardc/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseABTesting.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 704 bytes for ./Firebase_FirebaseABTesting.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 2210 bytes for ./BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./BranchSDK_BranchSDK.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 691 bytes for ./BranchSDK_BranchSDK.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 1105 bytes for ./GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleDataTransport_GoogleDataTransport.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 722 bytes for ./GoogleDataTransport_GoogleDataTransport.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 373 bytes for ./Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Promises_FBLPromises.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 684 bytes for ./Promises_FBLPromises.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 856 bytes for ./GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 722 bytes for ./GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Entitlements/Entitlements.plist ...
+2026-05-11 06:34:28 +0000 841 bytes for ./Entitlements/Entitlements.plist
+2026-05-11 06:34:28 +0000 copying file ./Entitlements/.gitignore ...
+2026-05-11 06:34:28 +0000 27 bytes for ./Entitlements/.gitignore
+2026-05-11 06:34:28 +0000 copying file ./Assets.car ...
+2026-05-11 06:34:28 +0000 263032 bytes for ./Assets.car
+2026-05-11 06:34:28 +0000 copying file ./AppIcon76x76@2x~ipad.png ...
+2026-05-11 06:34:28 +0000 6001 bytes for ./AppIcon76x76@2x~ipad.png
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseCoreExtension.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 712 bytes for ./Firebase_FirebaseCoreExtension.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Nivesh ...
+2026-05-11 06:34:28 +0000 4051408 bytes for ./Nivesh
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy ...
+911 bytes for ./GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy
+copying file ./GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist ...
+732 bytes for ./GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Promises_Promises.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 373 bytes for ./Promises_Promises.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Promises_Promises.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 678 bytes for ./Promises_Promises.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 855 bytes for ./GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 730 bytes for ./GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:28 +0000 1798 bytes for ./Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement ...
+2026-05-11 06:34:28 +0000 51488 bytes for ./Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurement.framework/Info.plist ...
+2026-05-11 06:34:28 +0000 1551 bytes for ./Frameworks/GoogleAppMeasurement.framework/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:28 +0000 1798 bytes for ./Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics ...
+2026-05-11 06:34:28 +0000 51488 bytes for ./Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/FirebaseAnalytics.framework/Info.plist ...
+2026-05-11 06:34:28 +0000 1542 bytes for ./Frameworks/FirebaseAnalytics.framework/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:28 +0000 1798 bytes for ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport ...
+2026-05-11 06:34:28 +0000 51520 bytes for ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport
+2026-05-11 06:34:28 +0000 copying file ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist ...
+2026-05-11 06:34:28 +0000 1596 bytes for ./Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 478 bytes for ./GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 736 bytes for ./GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./embedded.mobileprovision ...
+2026-05-11 06:34:28 +0000 14803 bytes for ./embedded.mobileprovision
+2026-05-11 06:34:28 +0000 copying file ./Info.plist ...
+2026-05-11 06:34:28 +0000 2750 bytes for ./Info.plist
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:28 +0000 1862 bytes for ./Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:28 +0000 copying file ./Firebase_FirebaseDynamicLinks.bundle/Info.plist ...
+2026-05-11 06:34:28 +0000 710 bytes for ./Firebase_FirebaseDynamicLinks.bundle/Info.plist
+2026-05-11 06:34:28 +0000 copying file ./PkgInfo ...
+2026-05-11 06:34:28 +0000 8 bytes for ./PkgInfo
+2026-05-11 06:34:28 +0000 /usr/bin/ditto exited with 0
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionEmbedProfileStep
+2026-05-11 06:34:28 +0000 Skipping profile for item: ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60002a13fba0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.FirebaseAnalytics', executablePath='', hardenedRuntime='0'>'>
+2026-05-11 06:34:28 +0000 Skipping profile for item: ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d0e0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurement', executablePath='', hardenedRuntime='0'>'>
+2026-05-11 06:34:28 +0000 Skipping profile for item: ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d380; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurementIdentitySupport', executablePath='', hardenedRuntime='0'>'>
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionInfoPlistStep
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionInfoPlistStep because it said so
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionInfoPlistStep because it said so
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionInfoPlistStep because it said so
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionInfoPlistStep because it said so
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionAppThinningPlistStep
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionAppThinningPlistStep because it said so
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionSymbolsStep
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionSymbolsStep because it said so
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionAppThinningStep
+2026-05-11 06:34:28 +0000 Skipping step: IDEDistributionAppThinningStep because it said so
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionArchThinningStep
+2026-05-11 06:34:28 +0000 Archs to thin for item /Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app/Frameworks/FirebaseAnalytics.framework are []
+2026-05-11 06:34:28 +0000 Archs to thin for item /Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app/Frameworks/GoogleAppMeasurement.framework are []
+2026-05-11 06:34:28 +0000 Archs to thin for item /Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework are []
+2026-05-11 06:34:28 +0000 Archs to thin for item /Users/ahkileshchandak/Library/Developer/Xcode/Archives/2026-05-11/Nivesh 11-05-26, 11.40 AM.xcarchive/Products/Applications/Nivesh.app are []
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionODRStep
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionStripXattrsStep
+2026-05-11 06:34:28 +0000 Skipping stripping extended attributes because the codesign step will strip them.
+2026-05-11 06:34:28 +0000 Skipping stripping extended attributes because the codesign step will strip them.
+2026-05-11 06:34:28 +0000 Skipping stripping extended attributes because the codesign step will strip them.
+2026-05-11 06:34:28 +0000 Skipping stripping extended attributes because the codesign step will strip them.
+2026-05-11 06:34:28 +0000 Processing step: IDEDistributionCodesignStep
+2026-05-11 06:34:28 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60002a13fba0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.FirebaseAnalytics', executablePath='', hardenedRuntime='0'>'>: {
+}
+2026-05-11 06:34:28 +0000 Associated App Clip Identifiers Filter: Skipping because "com.apple.developer.associated-appclip-app-identifiers" is not present
+2026-05-11 06:34:28 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60002a13fba0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.FirebaseAnalytics', executablePath='', hardenedRuntime='0'>'> are: {
+}
+2026-05-11 06:34:28 +0000 Writing entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60002a13fba0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.FirebaseAnalytics', executablePath='', hardenedRuntime='0'>'> to: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/entitlements~~~FR3pAy
+2026-05-11 06:34:29 +0000 invoking codesign:
+2026-05-11 06:34:29 +0000 codesign output: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework: replacing existing signature
+/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework: signed bundle with Mach-O universal (arm64) [org.cocoapods.FirebaseAnalytics]
+2026-05-11 06:34:29 +0000 Remote code signing '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework' with signature slices '[', codeSignatureHashes='{(
+
+)}', cmsHexEncoded=''>]' and configuration 'RemoteSigningToolConfiguration(path: , signingCertificate: , session: '>, team: >\n)}'>",
+ ">\n)}'>"
+)'>, codeResourcesDictionary: [AnyHashable("rules2"): {
+ ".*\\.dSYM($|/)" = {
+ weight = 11;
+ };
+ "^(.*/)?\\.DS_Store$" = {
+ omit = 1;
+ weight = 2000;
+ };
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^Info\\.plist$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^PkgInfo$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^embedded\\.provisionprofile$" = {
+ weight = 20;
+ };
+ "^version\\.plist$" = {
+ weight = 20;
+ };
+}, AnyHashable("files2"): {
+}, AnyHashable("files"): {
+ "Info.plist" = {length = 20, bytes = 0x088139cfcfb4d907fe136578275a8082d8d75dfa};
+}, AnyHashable("rules"): {
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^version.plist$" = 1;
+}], enableSignatureValidation: true, logAspect: )'
+2026-05-11 06:34:29 +0000 Sending request 91F81AE3-55AC-408D-A10D-780E45855326 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 113;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = 18f6i4hd9ftkshad20f02jcldtfb5jq19tmvdn1pm8g46j16h0ra;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-HTTP-Method-Override" = GET;
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"urlEncodedQueryParams":"teamId=892H6H36S9&filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"}
+2026-05-11 06:34:29 +0000 Received response for 91F81AE3-55AC-408D-A10D-780E45855326 @ . Code = 0
+2026-05-11 06:34:29 +0000 Response payload: {
+ "data" : [ {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P",
+ "attributes" : {
+ "requesterEmail" : "akhilesh.chandak@nivesh.com",
+ "serialNumber" : "537DA88EA38736F0707978AA71108214",
+ "certificateContent" : "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",
+ "displayName" : "Providential Platforms Private Limited",
+ "requesterLastName" : "Chandak",
+ "csrContent" : null,
+ "machineName" : null,
+ "platform" : null,
+ "requesterFirstName" : "Akhilesh",
+ "machineId" : null,
+ "name" : "Apple Distribution: Providential Platforms Private Limited",
+ "responseId" : "a0c50ec5-a571-4a87-8214-990bf1d8fb35",
+ "expirationDate" : "2027-01-19T07:39:59.000+00:00",
+ "certificateType" : "DISTRIBUTION_MANAGED"
+ },
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates/QHKZ8Y3N2P"
+ }
+ } ],
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates?filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"
+ },
+ "meta" : {
+ "paging" : {
+ "total" : 1,
+ "limit" : 200
+ }
+ }
+}
+
+2026-05-11 06:34:29 +0000 Sending request 711B7356-F1C6-4981-AD53-E953062BC6C0 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 429;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = 18f6i4hd9ftkshad20f02jcldtfb5jq19tmvdn1pm8g46j16h0ra;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"data":{"type":"batch","attributes":{"teamId":"892H6H36S9","resourceVersion":"1","resourceList":[{"data":{"type":"codeSignatures","attributes":{"name":"0","cdHashSha256":"3EABBAE117D24330631902309C2489168851A980ADA14FD52D46385B8F00FCEA","digestHash":"3EABBAE117D24330631902309C2489168851A980ADA14FD52D46385B8F00FCEA","teamId":"892H6H36S9"},"relationships":{"certificate":{"data":{"id":"QHKZ8Y3N2P","type":"certificates"}}}}}]}}}
+2026-05-11 06:34:30 +0000 Received response for 711B7356-F1C6-4981-AD53-E953062BC6C0 @ . Code = 0
+2026-05-11 06:34:30 +0000 Response payload: {
+ "data" : {
+ "type" : "batch",
+ "id" : "859fe0af-8271-45ae-a668-acf0d8d9c3cd",
+ "attributes" : {
+ "responseId" : "859fe0af-8271-45ae-a668-acf0d8d9c3cd",
+ "resourceList" : [ {
+ "type" : "codeSignatures",
+ "id" : "5047679f-f416-471f-bf7a-2d935ed694df",
+ "attributes" : {
+ "digestHash" : "3EABBAE117D24330631902309C2489168851A980ADA14FD52D46385B8F00FCEA",
+ "cdHashSha256" : "3EABBAE117D24330631902309C2489168851A980ADA14FD52D46385B8F00FCEA",
+ "signature" : "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",
+ "name" : "0",
+ "responseId" : "859fe0af-8271-45ae-a668-acf0d8d9c3cd",
+ "cmsSignature" : "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",
+ "timestamp" : false
+ },
+ "relationships" : {
+ "bundleId" : {
+ "data" : null,
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/5047679f-f416-471f-bf7a-2d935ed694df/relationships/bundleId"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/5047679f-f416-471f-bf7a-2d935ed694df/bundleId"
+ }
+ }
+ },
+ "certificate" : {
+ "data" : {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P"
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/5047679f-f416-471f-bf7a-2d935ed694df/relationships/certificate"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/5047679f-f416-471f-bf7a-2d935ed694df/certificate"
+ }
+ }
+ }
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/5047679f-f416-471f-bf7a-2d935ed694df"
+ }
+ }
+ } ],
+ "resourceVersion" : "1"
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch/859fe0af-8271-45ae-a668-acf0d8d9c3cd"
+ }
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch"
+ }
+}
+
+2026-05-11 06:34:30 +0000 Remote signature for /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework (arch: arm64) is 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
+2026-05-11 06:34:30 +0000 invoking codesign:
+2026-05-11 06:34:30 +0000 codesign output:
+2026-05-11 06:34:30 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d0e0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurement', executablePath='', hardenedRuntime='0'>'>: {
+}
+2026-05-11 06:34:30 +0000 Associated App Clip Identifiers Filter: Skipping because "com.apple.developer.associated-appclip-app-identifiers" is not present
+2026-05-11 06:34:30 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d0e0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurement', executablePath='', hardenedRuntime='0'>'> are: {
+}
+2026-05-11 06:34:30 +0000 Writing entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d0e0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurement', executablePath='', hardenedRuntime='0'>'> to: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/entitlements~~~00CRO2
+2026-05-11 06:34:31 +0000 invoking codesign:
+2026-05-11 06:34:31 +0000 codesign output: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework: replacing existing signature
+/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework: signed bundle with Mach-O universal (arm64) [org.cocoapods.GoogleAppMeasurement]
+2026-05-11 06:34:31 +0000 Remote code signing '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework' with signature slices '[', codeSignatureHashes='{(
+
+)}', cmsHexEncoded=''>]' and configuration 'RemoteSigningToolConfiguration(path: , signingCertificate: , session: '>, team: >\n)}'>",
+ ">\n)}'>"
+)'>, codeResourcesDictionary: [AnyHashable("files"): {
+ "Info.plist" = {length = 20, bytes = 0xbcc1cb708c1f69a7b4b736b2417d5cff7d53d730};
+}, AnyHashable("files2"): {
+}, AnyHashable("rules2"): {
+ ".*\\.dSYM($|/)" = {
+ weight = 11;
+ };
+ "^(.*/)?\\.DS_Store$" = {
+ omit = 1;
+ weight = 2000;
+ };
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^Info\\.plist$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^PkgInfo$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^embedded\\.provisionprofile$" = {
+ weight = 20;
+ };
+ "^version\\.plist$" = {
+ weight = 20;
+ };
+}, AnyHashable("rules"): {
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^version.plist$" = 1;
+}], enableSignatureValidation: true, logAspect: )'
+2026-05-11 06:34:31 +0000 Sending request D566D21D-B1AB-44D9-8A57-C7D2384E2092 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 113;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = e70m7desvgqdno1k5n7jm25kn5dpiod7ja0p76s234i560ir6r9;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-HTTP-Method-Override" = GET;
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"urlEncodedQueryParams":"teamId=892H6H36S9&filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"}
+2026-05-11 06:34:31 +0000 Received response for D566D21D-B1AB-44D9-8A57-C7D2384E2092 @ . Code = 0
+2026-05-11 06:34:31 +0000 Response payload: {
+ "data" : [ {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P",
+ "attributes" : {
+ "requesterEmail" : "akhilesh.chandak@nivesh.com",
+ "serialNumber" : "537DA88EA38736F0707978AA71108214",
+ "certificateContent" : "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",
+ "displayName" : "Providential Platforms Private Limited",
+ "requesterLastName" : "Chandak",
+ "csrContent" : null,
+ "machineName" : null,
+ "platform" : null,
+ "requesterFirstName" : "Akhilesh",
+ "machineId" : null,
+ "name" : "Apple Distribution: Providential Platforms Private Limited",
+ "responseId" : "88f316a3-4fb7-4092-afb1-651f9b0dea3f",
+ "expirationDate" : "2027-01-19T07:39:59.000+00:00",
+ "certificateType" : "DISTRIBUTION_MANAGED"
+ },
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates/QHKZ8Y3N2P"
+ }
+ } ],
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates?filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"
+ },
+ "meta" : {
+ "paging" : {
+ "total" : 1,
+ "limit" : 200
+ }
+ }
+}
+
+2026-05-11 06:34:31 +0000 Sending request B4945415-F59D-42C7-971C-ECE96DA52CEC to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 429;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = e70m7desvgqdno1k5n7jm25kn5dpiod7ja0p76s234i560ir6r9;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"data":{"type":"batch","attributes":{"teamId":"892H6H36S9","resourceList":[{"data":{"relationships":{"certificate":{"data":{"type":"certificates","id":"QHKZ8Y3N2P"}}},"type":"codeSignatures","attributes":{"digestHash":"5C205FCDD7AA3BC2C56EE1586E8A0AC25CDD67532E01505A9D84CFC02D1F487E","cdHashSha256":"5C205FCDD7AA3BC2C56EE1586E8A0AC25CDD67532E01505A9D84CFC02D1F487E","name":"0","teamId":"892H6H36S9"}}}],"resourceVersion":"1"}}}
+2026-05-11 06:34:32 +0000 Received response for B4945415-F59D-42C7-971C-ECE96DA52CEC @ . Code = 0
+2026-05-11 06:34:32 +0000 Response payload: {
+ "data" : {
+ "type" : "batch",
+ "id" : "40bd5d70-3d7e-4408-9b44-a5da7d0b7bd0",
+ "attributes" : {
+ "responseId" : "40bd5d70-3d7e-4408-9b44-a5da7d0b7bd0",
+ "resourceList" : [ {
+ "type" : "codeSignatures",
+ "id" : "4f1ec429-2b23-410e-be2e-05aa29a8ac8b",
+ "attributes" : {
+ "digestHash" : "5C205FCDD7AA3BC2C56EE1586E8A0AC25CDD67532E01505A9D84CFC02D1F487E",
+ "cdHashSha256" : "5C205FCDD7AA3BC2C56EE1586E8A0AC25CDD67532E01505A9D84CFC02D1F487E",
+ "signature" : "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",
+ "name" : "0",
+ "responseId" : "40bd5d70-3d7e-4408-9b44-a5da7d0b7bd0",
+ "cmsSignature" : "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",
+ "timestamp" : false
+ },
+ "relationships" : {
+ "bundleId" : {
+ "data" : null,
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/4f1ec429-2b23-410e-be2e-05aa29a8ac8b/relationships/bundleId"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/4f1ec429-2b23-410e-be2e-05aa29a8ac8b/bundleId"
+ }
+ }
+ },
+ "certificate" : {
+ "data" : {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P"
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/4f1ec429-2b23-410e-be2e-05aa29a8ac8b/relationships/certificate"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/4f1ec429-2b23-410e-be2e-05aa29a8ac8b/certificate"
+ }
+ }
+ }
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/4f1ec429-2b23-410e-be2e-05aa29a8ac8b"
+ }
+ }
+ } ],
+ "resourceVersion" : "1"
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch/40bd5d70-3d7e-4408-9b44-a5da7d0b7bd0"
+ }
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch"
+ }
+}
+
+2026-05-11 06:34:32 +0000 Remote signature for /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework (arch: arm64) is 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
+2026-05-11 06:34:32 +0000 invoking codesign:
+2026-05-11 06:34:32 +0000 codesign output:
+2026-05-11 06:34:32 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d380; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurementIdentitySupport', executablePath='', hardenedRuntime='0'>'>: {
+}
+2026-05-11 06:34:32 +0000 Associated App Clip Identifiers Filter: Skipping because "com.apple.developer.associated-appclip-app-identifiers" is not present
+2026-05-11 06:34:32 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d380; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurementIdentitySupport', executablePath='', hardenedRuntime='0'>'> are: {
+}
+2026-05-11 06:34:32 +0000 Writing entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d380; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='(null)', teamID='892H6H36S9', identifier='org.cocoapods.GoogleAppMeasurementIdentitySupport', executablePath='', hardenedRuntime='0'>'> to: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/entitlements~~~4nH8Pf
+2026-05-11 06:34:32 +0000 invoking codesign:
+2026-05-11 06:34:32 +0000 codesign output: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework: replacing existing signature
+/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework: signed bundle with Mach-O universal (arm64) [org.cocoapods.GoogleAppMeasurementIdentitySupport]
+2026-05-11 06:34:32 +0000 Remote code signing '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework' with signature slices '[', codeSignatureHashes='{(
+
+)}', cmsHexEncoded=''>]' and configuration 'RemoteSigningToolConfiguration(path: , signingCertificate: , session: '>, team: >\n)}'>",
+ ">\n)}'>"
+)'>, codeResourcesDictionary: [AnyHashable("files2"): {
+}, AnyHashable("rules2"): {
+ ".*\\.dSYM($|/)" = {
+ weight = 11;
+ };
+ "^(.*/)?\\.DS_Store$" = {
+ omit = 1;
+ weight = 2000;
+ };
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^Info\\.plist$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^PkgInfo$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^embedded\\.provisionprofile$" = {
+ weight = 20;
+ };
+ "^version\\.plist$" = {
+ weight = 20;
+ };
+}, AnyHashable("files"): {
+ "Info.plist" = {length = 20, bytes = 0x99d1df655cbd34701f8eb89dc4014d4b332e930d};
+}, AnyHashable("rules"): {
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^version.plist$" = 1;
+}], enableSignatureValidation: true, logAspect: )'
+2026-05-11 06:34:32 +0000 Sending request 122E6724-6190-4EC0-8BD7-CD25498527F4 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 113;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = esu674am7kjb1qace75neubv3lp8f6j38l7ha71iiov5fp1s8u8;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-HTTP-Method-Override" = GET;
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"urlEncodedQueryParams":"teamId=892H6H36S9&filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"}
+2026-05-11 06:34:32 +0000 Received response for 122E6724-6190-4EC0-8BD7-CD25498527F4 @ . Code = 0
+2026-05-11 06:34:32 +0000 Response payload: {
+ "data" : [ {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P",
+ "attributes" : {
+ "requesterEmail" : "akhilesh.chandak@nivesh.com",
+ "serialNumber" : "537DA88EA38736F0707978AA71108214",
+ "certificateContent" : "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",
+ "displayName" : "Providential Platforms Private Limited",
+ "requesterLastName" : "Chandak",
+ "csrContent" : null,
+ "machineName" : null,
+ "platform" : null,
+ "requesterFirstName" : "Akhilesh",
+ "machineId" : null,
+ "name" : "Apple Distribution: Providential Platforms Private Limited",
+ "responseId" : "79307fc0-f600-4bd6-b2d0-8dee6aeb0800",
+ "expirationDate" : "2027-01-19T07:39:59.000+00:00",
+ "certificateType" : "DISTRIBUTION_MANAGED"
+ },
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates/QHKZ8Y3N2P"
+ }
+ } ],
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates?filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"
+ },
+ "meta" : {
+ "paging" : {
+ "total" : 1,
+ "limit" : 200
+ }
+ }
+}
+
+2026-05-11 06:34:32 +0000 Sending request 0686197E-F7A2-4182-9E8C-6564BF3D6C58 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 429;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = esu674am7kjb1qace75neubv3lp8f6j38l7ha71iiov5fp1s8u8;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"data":{"type":"batch","attributes":{"resourceVersion":"1","resourceList":[{"data":{"type":"codeSignatures","attributes":{"name":"0","cdHashSha256":"3FE167B3B07BD1A15DFA6B327062D1DB017B485715C6270EBE54337946FBEE7A","teamId":"892H6H36S9","digestHash":"3FE167B3B07BD1A15DFA6B327062D1DB017B485715C6270EBE54337946FBEE7A"},"relationships":{"certificate":{"data":{"id":"QHKZ8Y3N2P","type":"certificates"}}}}}],"teamId":"892H6H36S9"}}}
+2026-05-11 06:34:33 +0000 Received response for 0686197E-F7A2-4182-9E8C-6564BF3D6C58 @ . Code = 0
+2026-05-11 06:34:33 +0000 Response payload: {
+ "data" : {
+ "type" : "batch",
+ "id" : "74029309-3d11-442b-8b67-25de0f07dd44",
+ "attributes" : {
+ "responseId" : "74029309-3d11-442b-8b67-25de0f07dd44",
+ "resourceList" : [ {
+ "type" : "codeSignatures",
+ "id" : "f9642143-6b10-413f-99a4-3c04a2fd33f7",
+ "attributes" : {
+ "digestHash" : "3FE167B3B07BD1A15DFA6B327062D1DB017B485715C6270EBE54337946FBEE7A",
+ "cdHashSha256" : "3FE167B3B07BD1A15DFA6B327062D1DB017B485715C6270EBE54337946FBEE7A",
+ "signature" : "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",
+ "name" : "0",
+ "responseId" : "74029309-3d11-442b-8b67-25de0f07dd44",
+ "cmsSignature" : "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",
+ "timestamp" : false
+ },
+ "relationships" : {
+ "bundleId" : {
+ "data" : null,
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/f9642143-6b10-413f-99a4-3c04a2fd33f7/relationships/bundleId"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/f9642143-6b10-413f-99a4-3c04a2fd33f7/bundleId"
+ }
+ }
+ },
+ "certificate" : {
+ "data" : {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P"
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/f9642143-6b10-413f-99a4-3c04a2fd33f7/relationships/certificate"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/f9642143-6b10-413f-99a4-3c04a2fd33f7/certificate"
+ }
+ }
+ }
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/f9642143-6b10-413f-99a4-3c04a2fd33f7"
+ }
+ }
+ } ],
+ "resourceVersion" : "1"
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch/74029309-3d11-442b-8b67-25de0f07dd44"
+ }
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch"
+ }
+}
+
+2026-05-11 06:34:33 +0000 Remote signature for /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework (arch: arm64) is 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
+2026-05-11 06:34:33 +0000 invoking codesign:
+2026-05-11 06:34:33 +0000 codesign output:
+2026-05-11 06:34:33 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d5c0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='{
+ "application-identifier" = "892H6H36S9.com.nivesh.app";
+ "aps-environment" = development;
+ "com.apple.developer.associated-domains" = (
+ "applinks:app.nivesh.com",
+ "webcredentials:app.nivesh.com",
+ "nivesh.app.link",
+ "nivesh-alternate.app.link"
+ );
+ "com.apple.developer.team-identifier" = 892H6H36S9;
+ "get-task-allow" = 1;
+}', teamID='892H6H36S9', identifier='com.nivesh.app', executablePath='', hardenedRuntime='0'>'>: {
+ "application-identifier" = "892H6H36S9.com.nivesh.app";
+ "aps-environment" = production;
+ "com.apple.developer.associated-domains" = (
+ "applinks:app.nivesh.com",
+ "webcredentials:app.nivesh.com",
+ "nivesh.app.link",
+ "nivesh-alternate.app.link"
+ );
+ "com.apple.developer.team-identifier" = 892H6H36S9;
+ "get-task-allow" = 0;
+}
+2026-05-11 06:34:33 +0000 Associated App Clip Identifiers Filter: Skipping because "com.apple.developer.associated-appclip-app-identifiers" is not present
+2026-05-11 06:34:33 +0000 Entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d5c0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='{
+ "application-identifier" = "892H6H36S9.com.nivesh.app";
+ "aps-environment" = development;
+ "com.apple.developer.associated-domains" = (
+ "applinks:app.nivesh.com",
+ "webcredentials:app.nivesh.com",
+ "nivesh.app.link",
+ "nivesh-alternate.app.link"
+ );
+ "com.apple.developer.team-identifier" = 892H6H36S9;
+ "get-task-allow" = 1;
+}', teamID='892H6H36S9', identifier='com.nivesh.app', executablePath='', hardenedRuntime='0'>'> are: {
+ "application-identifier" = "892H6H36S9.com.nivesh.app";
+ "aps-environment" = production;
+ "com.apple.developer.associated-domains" = (
+ "applinks:app.nivesh.com",
+ "webcredentials:app.nivesh.com",
+ "nivesh.app.link",
+ "nivesh-alternate.app.link"
+ );
+ "com.apple.developer.team-identifier" = 892H6H36S9;
+ "get-task-allow" = 0;
+}
+2026-05-11 06:34:33 +0000 Writing entitlements for ', codeSigningInfo='<_DVTCodeSigningInformation_Path: 0x60003a07d5c0; isSigned='1', isAdHocSigned='0', signingCertificate='', entitlements='{
+ "application-identifier" = "892H6H36S9.com.nivesh.app";
+ "aps-environment" = development;
+ "com.apple.developer.associated-domains" = (
+ "applinks:app.nivesh.com",
+ "webcredentials:app.nivesh.com",
+ "nivesh.app.link",
+ "nivesh-alternate.app.link"
+ );
+ "com.apple.developer.team-identifier" = 892H6H36S9;
+ "get-task-allow" = 1;
+}', teamID='892H6H36S9', identifier='com.nivesh.app', executablePath='', hardenedRuntime='0'>'> to: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/entitlements~~~dev2aA
+2026-05-11 06:34:33 +0000 invoking codesign:
+2026-05-11 06:34:33 +0000 codesign output: /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app: replacing existing signature
+/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app: signed app bundle with Mach-O thin (arm64) [com.nivesh.app]
+2026-05-11 06:34:33 +0000 Remote code signing '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app' with signature slices '[', codeSignatureHashes='{(
+
+)}', cmsHexEncoded=''>]' and configuration 'RemoteSigningToolConfiguration(path: , signingCertificate: , session: '>, team: >\n)}'>",
+ ">\n)}'>"
+)'>, codeResourcesDictionary: [AnyHashable("files"): {
+ "AppIcon60x60@2x.png" = {length = 20, bytes = 0x9d65b3726995f014116b4a79049afdae9187b7f8};
+ "AppIcon76x76@2x~ipad.png" = {length = 20, bytes = 0x4d64b030244a45aa0684ae0d25b56343fd149033};
+ "Assets.car" = {length = 20, bytes = 0xa0a169a6a30bf47362ad28d2219786e3a69f79b5};
+ "Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib" = {length = 20, bytes = 0xfbc700737db9466ec0e715685a5af99086a43378};
+ "Base.lproj/LaunchScreen.storyboardc/Info.plist" = {length = 20, bytes = 0x9f6b7c82c0e97c4e979211b7d69ec84094714f15};
+ "Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib" = {length = 20, bytes = 0x06b29d9d9a014190ab50ce2441ab93c665460a5c};
+ "Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib" = {length = 20, bytes = 0x6b33ad5b4f16eb94f7be46acd54132085f6fd6e2};
+ "Base.lproj/Main.storyboardc/Info.plist" = {length = 20, bytes = 0x303aca16f156ae84dbd3e2846d04a105ca01be8e};
+ "Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib" = {length = 20, bytes = 0xa1e2e6572af5c9493cba461d86bfe5ad345e0d5f};
+ "BranchSDK_BranchSDK.bundle/Info.plist" = {length = 20, bytes = 0x25b56272d0c05cb5b593ebff765252d4b77c2705};
+ "BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x1f1ea952e728e95d1fa8112dc45edc1e98d8d83f};
+ "Entitlements/.gitignore" = {length = 20, bytes = 0x3cd284473afe50a7a04b984d74127bc4a67ab226};
+ "Entitlements/Entitlements.plist" = {length = 20, bytes = 0x15cd75f7633b55656e600bbdc8625327130b5af3};
+ "Firebase_FirebaseABTesting.bundle/Info.plist" = {length = 20, bytes = 0x3be50ae857338c7ebf8c25a4427f8bce9dd3f2d0};
+ "Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "Firebase_FirebaseAuth.bundle/Info.plist" = {length = 20, bytes = 0x7e952864678fa26248a9948346435850faa8e61b};
+ "Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xf1c43fad24bb5d1f28853b92011dbb9906f5c225};
+ "Firebase_FirebaseCore.bundle/Info.plist" = {length = 20, bytes = 0x7148e2addd601d78ba6fdb25e706fedd5a3a33c8};
+ "Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xb1ad8e84596a742232cfda15edf51d0ca5b314bd};
+ "Firebase_FirebaseCoreExtension.bundle/Info.plist" = {length = 20, bytes = 0x9af2ee617db6d88b385acefff4521854039d74f8};
+ "Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "Firebase_FirebaseCoreInternal.bundle/Info.plist" = {length = 20, bytes = 0x45c29d8223f782abf23b087669e565152285f102};
+ "Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x89fa1386ba9b6eaa0b1b8ca302bb8c41169fd03c};
+ "Firebase_FirebaseCrashlytics.bundle/Info.plist" = {length = 20, bytes = 0xae93a9a7359ed30bf2ecf1514828240c7de9947f};
+ "Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x8377dcdf2eb7e90242a0f888be97d7cb07a5b810};
+ "Firebase_FirebaseDynamicLinks.bundle/Info.plist" = {length = 20, bytes = 0x54f3ae0e80ec2c4d0118572b8ea238ab7ffe3359};
+ "Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xd8d5b9b965ad3508a84c5c4ca28e5bf09c5a1741};
+ "Firebase_FirebaseInstallations.bundle/Info.plist" = {length = 20, bytes = 0xf52a4ca08751ecaf4d90a8a190488e416e1d850d};
+ "Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x59741426bef978c4608959cb1b27fc1abdee2d45};
+ "Firebase_FirebaseMessaging.bundle/Info.plist" = {length = 20, bytes = 0x4ce4dd7b21b2aa335ac3c1bc5193fd6e046deaa0};
+ "Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x830bf636c3bfeacee293a3f1e9e4d34ef69c58de};
+ "Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics" = {length = 20, bytes = 0x09d41947d5a194925709a34375d38a5b073901c5};
+ "Frameworks/FirebaseAnalytics.framework/Info.plist" = {length = 20, bytes = 0x088139cfcfb4d907fe136578275a8082d8d75dfa};
+ "Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources" = {length = 20, bytes = 0xf71433e09cdfc626b240c1af4dcc444d1dd2c7c6};
+ "Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement" = {length = 20, bytes = 0xa55e40de5282c085db306f3f5b719e0d06c3adc5};
+ "Frameworks/GoogleAppMeasurement.framework/Info.plist" = {length = 20, bytes = 0xbcc1cb708c1f69a7b4b736b2417d5cff7d53d730};
+ "Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources" = {length = 20, bytes = 0x046d0240547769b48db89e82eb4a9ef86ddb367c};
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport" = {length = 20, bytes = 0x89b302da82c60c5c85cfad59d84ca2cae4f35cb4};
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist" = {length = 20, bytes = 0x99d1df655cbd34701f8eb89dc4014d4b332e930d};
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources" = {length = 20, bytes = 0x39f0b880745a4b07d4c096e045e3e518ea4cf0dd};
+ "GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist" = {length = 20, bytes = 0xcd7a4e6939e5bc9146b93a09c0a8125e00a620b3};
+ "GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x1aa780324c1b70d41e1b42b8a90850876bc7847a};
+ "GoogleDataTransport_GoogleDataTransport.bundle/Info.plist" = {length = 20, bytes = 0x73269bd0f85258c3171dfe0439c64b3ec67417c6};
+ "GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x59741426bef978c4608959cb1b27fc1abdee2d45};
+ "GoogleService-Info.plist" = {length = 20, bytes = 0x25ecf7e3334c17c323089ebe44dec78b0f52c0f7};
+ "GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist" = {length = 20, bytes = 0x9cc1f3f1364d95464712c741e163c7aeea93a0ef};
+ "GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist" = {length = 20, bytes = 0x1678ad26b3487069dcbbac1a3f78996d2f5ebd21};
+ "GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xe9110a6c9eb555e246c445607c282a0335967c0e};
+ "GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist" = {length = 20, bytes = 0x1ff492f04aeb88f668c6eaeb22c7ab0587cefae9};
+ "GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist" = {length = 20, bytes = 0xb61d963858d1115686c50f190ba48731056b9b9f};
+ "GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist" = {length = 20, bytes = 0x9f85669cf89248fd08ebc4e211b03b1098eceffb};
+ "GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist" = {length = 20, bytes = 0x17837cc8ea410eec6374b185f708e1a3f71ffcf7};
+ "GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x2531984134a4b89eee19f0f549f8d04eade78329};
+ "GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist" = {length = 20, bytes = 0x092d261dd79eefc8b4cdd9f739512be069fa0fc7};
+ "GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0xea20654845b3ac3eb3a2e1f1e0da9e0e18ca4864};
+ "GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist" = {length = 20, bytes = 0x6ecef461efb748df17915a9edb08e4993bccd816};
+ "GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x83b32ef44e72420af8c63e65bb85e8b37b8ca6d4};
+ "Info.plist" = {length = 20, bytes = 0xc117f5255532addfc03a487b864a91ff19be337e};
+ PkgInfo = {length = 20, bytes = 0x9f9eea0cfe2d65f2c3d6b092e375b40782d08f31};
+ "Promises_FBLPromises.bundle/Info.plist" = {length = 20, bytes = 0x1ed7d5157510529d3ef47a406ab5449739870705};
+ "Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x65a8e7bc4b3f318452dd7e133cb0210568bc99ce};
+ "Promises_Promises.bundle/Info.plist" = {length = 20, bytes = 0x4a0886294f80189246d8224222bb46096c834784};
+ "Promises_Promises.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x65a8e7bc4b3f318452dd7e133cb0210568bc99ce};
+ "embedded.mobileprovision" = {length = 20, bytes = 0xed1c0f16e40ec37ebbb2bae3ab0cd4be9bbf8c3b};
+ "nanopb_nanopb.bundle/Info.plist" = {length = 20, bytes = 0xc9b77162f7a4f047bf6d9568ebcb8d4a12d2c63e};
+ "nanopb_nanopb.bundle/PrivacyInfo.xcprivacy" = {length = 20, bytes = 0x298e657f00b64efb20163e30b7b8643266a29dbb};
+}, AnyHashable("rules2"): {
+ ".*\\.dSYM($|/)" = {
+ weight = 11;
+ };
+ "^(.*/)?\\.DS_Store$" = {
+ omit = 1;
+ weight = 2000;
+ };
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^Info\\.plist$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^PkgInfo$" = {
+ omit = 1;
+ weight = 20;
+ };
+ "^embedded\\.provisionprofile$" = {
+ weight = 20;
+ };
+ "^version\\.plist$" = {
+ weight = 20;
+ };
+}, AnyHashable("files2"): {
+ "AppIcon60x60@2x.png" = {
+ hash2 = {length = 32, bytes = 0x7ea8da19 4fba0abf 34f7e04b b250ed7e ... eec60ea8 7d805d40 };
+ };
+ "AppIcon76x76@2x~ipad.png" = {
+ hash2 = {length = 32, bytes = 0xb2b2dc2c 5455ae73 752025be dce79fcd ... bab03e23 59a87131 };
+ };
+ "Assets.car" = {
+ hash2 = {length = 32, bytes = 0xcc65febb bb56ff77 6446c150 6ceea707 ... 1061233d a1a38391 };
+ };
+ "Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib" = {
+ hash2 = {length = 32, bytes = 0xdaa6eb8b b8531c97 ecf16032 cb39698a ... b31400ed f4717366 };
+ };
+ "Base.lproj/LaunchScreen.storyboardc/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x1f255d5c c53b531e 3f29a940 6a8df49a ... bd8374f7 07f7d5c8 };
+ };
+ "Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib" = {
+ hash2 = {length = 32, bytes = 0xb433bfa8 284c6a3c d813336b f2245c7b ... a88fa314 344ed275 };
+ };
+ "Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib" = {
+ hash2 = {length = 32, bytes = 0x844cc9d9 289f72b4 1a577447 a02e1f78 ... 2de08cf8 a2643575 };
+ };
+ "Base.lproj/Main.storyboardc/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x3e9bdaa4 08d1eb6a e5e989b8 13a8644e ... 5de52a72 91e69aa4 };
+ };
+ "Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib" = {
+ hash2 = {length = 32, bytes = 0x583acd25 490ecd0f db32bf09 f616df31 ... e67e5efd edf49d06 };
+ };
+ "BranchSDK_BranchSDK.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x092eede0 ebcf944f 4e99a9cd 5198caba ... b5ebc4ce 9f02ba35 };
+ };
+ "BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xb7944cc7 660c8d17 07e8ea41 f399008f ... ea302124 20272b95 };
+ };
+ "Entitlements/.gitignore" = {
+ hash2 = {length = 32, bytes = 0xa52c7f2c f53b0504 490e9d96 ddb4112f ... c343a532 613c637c };
+ };
+ "Entitlements/Entitlements.plist" = {
+ hash2 = {length = 32, bytes = 0x56b42b2c 5d10ed69 1008e650 db32743d ... c952f1f1 7f15519f };
+ };
+ "Firebase_FirebaseABTesting.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x6a0a9b56 625e8bc4 34eecd88 36aaed48 ... f3bfc1ca 6882b745 };
+ };
+ "Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "Firebase_FirebaseAuth.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x992f596f 65b4468c 69b59c6f 5d52d2c7 ... 0cc110cb 400e4536 };
+ };
+ "Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x04c162ea fa49b2ce d0663231 a89cc9f5 ... 719b5da0 608aefd5 };
+ };
+ "Firebase_FirebaseCore.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x315202a2 936f04ec d9d9f009 de6416a8 ... 474d7d6d 137baa09 };
+ };
+ "Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x11e31f5f 6b60e80e bd590154 9fce5043 ... 945000b4 05306c3f };
+ };
+ "Firebase_FirebaseCoreExtension.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x61989b32 c0b7fda5 11b3aa50 67414d03 ... e75c195d 28b9919f };
+ };
+ "Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "Firebase_FirebaseCoreInternal.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x377c4486 036c332c 2dcf351f e52a91a0 ... 047cb4a3 77153773 };
+ };
+ "Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x5b7fe979 423dede3 e08afc29 a42f00f6 ... 97742358 63eed3ef };
+ };
+ "Firebase_FirebaseCrashlytics.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x2da0af14 a7cfe0b7 d0258323 2e80b407 ... a2db5800 04c60330 };
+ };
+ "Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xe9bcc6e9 c7382bf5 06cadabe 74cfd4ed ... 5a634b86 aa5fcce0 };
+ };
+ "Firebase_FirebaseDynamicLinks.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xe54c6f49 66fde223 e9e893a0 fef4cea5 ... 1cc8be63 72e7fa27 };
+ };
+ "Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xb69feb1b 52577d99 cfab84c5 131ba0c2 ... 790b3dc5 de5d0df0 };
+ };
+ "Firebase_FirebaseInstallations.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x2507793d 0fbea9b1 9d75ba0c 09c128f9 ... 8d10c718 fad9208d };
+ };
+ "Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xcfbb3c4f 76a66d53 698bae91 f7110c00 ... 32592909 bc010e51 };
+ };
+ "Firebase_FirebaseMessaging.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x0f7affac cc50dc61 f6bbd0fd 16956bca ... 607baf59 48b07d86 };
+ };
+ "Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x98762096 372ac27f 5e888c73 72d512f0 ... 070f4cde 1a72a071 };
+ };
+ "Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics" = {
+ hash2 = {length = 32, bytes = 0x20d20d6c ef395a33 8bf984bd db6c44c6 ... 04e45a32 c29fd2c1 };
+ };
+ "Frameworks/FirebaseAnalytics.framework/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x376fc07c 83011bde 55dab8c3 8eceb797 ... b87d053d cc4030aa };
+ };
+ "Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources" = {
+ hash2 = {length = 32, bytes = 0x8468f3b6 abf2336c 98cf7a6d f54ae5a0 ... 3c8a440c ee3d1906 };
+ };
+ "Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement" = {
+ hash2 = {length = 32, bytes = 0xab920566 8832d973 b8e78efa e4d4c9c7 ... b44c973a 8e40a07d };
+ };
+ "Frameworks/GoogleAppMeasurement.framework/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xc5c266d6 12a65c87 5d86cd29 f393a9f8 ... 32e9fd15 7dbba98b };
+ };
+ "Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources" = {
+ hash2 = {length = 32, bytes = 0x191ed87c 06d6d103 b87ccdef 734a213f ... 3e07d3bd 4ea64b7c };
+ };
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport" = {
+ hash2 = {length = 32, bytes = 0x30f13f7f f8572731 3d9623d5 636f418f ... 5fd64cb5 a2c1bcb4 };
+ };
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x8acb026f de0f170d 4097c67e feae665d ... 24445daf c30f409b };
+ };
+ "Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources" = {
+ hash2 = {length = 32, bytes = 0x9f6aeb11 a787b031 0a63dc74 10747df5 ... 0b377a83 47f86832 };
+ };
+ "GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x1ace1d8b 110c0151 6b83f4d6 7c901048 ... 2e6456fa 44870e32 };
+ };
+ "GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x3e4a93cb e86acef7 dd7e063a 28c84999 ... 37c1e8b0 e1b54686 };
+ };
+ "GoogleDataTransport_GoogleDataTransport.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x1a68ef12 e7359802 e2c3bd12 9d8bfc5c ... f02d27d1 3946a796 };
+ };
+ "GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xcfbb3c4f 76a66d53 698bae91 f7110c00 ... 32592909 bc010e51 };
+ };
+ "GoogleService-Info.plist" = {
+ hash2 = {length = 32, bytes = 0x1bb0e0a8 23b02dc8 a6b32bdd c15e7368 ... d2445910 39a82983 };
+ };
+ "GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xf25bb80b 9fb12ac4 a15a88b3 c2461945 ... 9c7a5e91 d98dab24 };
+ };
+ "GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xfc46675a fd7288b8 4747f680 b1001676 ... 292e8d72 e4c81276 };
+ };
+ "GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xb08273d6 87379394 792f71c9 4c108361 ... 058980f4 44cfb3d4 };
+ };
+ "GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xebd395dc 99224ded d3a68db8 60c0313e ... 20fea0a0 ff5bb7fa };
+ };
+ "GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xc88db7ae f91fcea5 3fea45b3 bea38319 ... 57c2471e 0d02a746 };
+ };
+ "GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xb057e313 b6819183 c415982a b018a61d ... 95aa7cdf 3e7f4dcb };
+ };
+ "GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xaad1179f 9f1bc007 1b9a4aaf e358e508 ... eba16727 11dd82b4 };
+ };
+ "GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x0ac00a0b 7eff0079 dce252e2 9ab41d71 ... a110cef5 c62970e1 };
+ };
+ "GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xeaa21048 a9825050 ab0c951d 7ff8a09f ... 2b29a92f e3241fad };
+ };
+ "GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x1377ecce dff8f832 0f78040e 9c9d3e17 ... f0ef17be 44197c7a };
+ };
+ "GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x0409a744 fc64bd11 7b542644 5c04c82c ... 0b3b8ab6 19557a11 };
+ };
+ "GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0xfac507c5 10aba788 4e805fb5 feff1a8a ... 927a2bdf aa7130b4 };
+ };
+ "Promises_FBLPromises.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x39435483 0fc5a0f6 56439534 5dae2c13 ... e594666b 7b41bc6e };
+ };
+ "Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x74b0cd72 fc23c1ef 302f22ee 2753f618 ... d0632b52 4fb8acea };
+ };
+ "Promises_Promises.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0x9853ff0f 8b35d757 72652007 5a6c6f19 ... 39397b7e 5f0e1543 };
+ };
+ "Promises_Promises.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x74b0cd72 fc23c1ef 302f22ee 2753f618 ... d0632b52 4fb8acea };
+ };
+ "embedded.mobileprovision" = {
+ hash2 = {length = 32, bytes = 0xb152e3c5 ea7adbfe d84874aa d399c964 ... 6c3c2378 f91af606 };
+ };
+ "nanopb_nanopb.bundle/Info.plist" = {
+ hash2 = {length = 32, bytes = 0xfa54d2c8 34c980fa a4bde632 7339bd3f ... 0e8ad731 77189ab8 };
+ };
+ "nanopb_nanopb.bundle/PrivacyInfo.xcprivacy" = {
+ hash2 = {length = 32, bytes = 0x729ba3cb d0f458c7 8cd61edf 17350eda ... 64c8cb22 ccd21b54 };
+ };
+}, AnyHashable("rules"): {
+ "^.*" = 1;
+ "^.*\\.lproj/" = {
+ optional = 1;
+ weight = 1000;
+ };
+ "^.*\\.lproj/locversion.plist$" = {
+ omit = 1;
+ weight = 1100;
+ };
+ "^Base\\.lproj/" = {
+ weight = 1010;
+ };
+ "^version.plist$" = 1;
+}], enableSignatureValidation: true, logAspect: )'
+2026-05-11 06:34:33 +0000 Sending request 4B1F8666-0E8A-4DF9-B607-76510663C0BF to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 113;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = 1t7si836d8bdb6gdemd7kql9knho58j7piecsd4n19ioibsqrlga;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-HTTP-Method-Override" = GET;
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"urlEncodedQueryParams":"teamId=892H6H36S9&filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"}
+2026-05-11 06:34:33 +0000 Received response for 4B1F8666-0E8A-4DF9-B607-76510663C0BF @ . Code = 0
+2026-05-11 06:34:33 +0000 Response payload: {
+ "data" : [ {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P",
+ "attributes" : {
+ "requesterEmail" : "akhilesh.chandak@nivesh.com",
+ "serialNumber" : "537DA88EA38736F0707978AA71108214",
+ "certificateContent" : "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",
+ "displayName" : "Providential Platforms Private Limited",
+ "requesterLastName" : "Chandak",
+ "csrContent" : null,
+ "machineName" : null,
+ "platform" : null,
+ "requesterFirstName" : "Akhilesh",
+ "machineId" : null,
+ "name" : "Apple Distribution: Providential Platforms Private Limited",
+ "responseId" : "7775dd0e-14cb-4dd5-b5a0-de9dcb58252f",
+ "expirationDate" : "2027-01-19T07:39:59.000+00:00",
+ "certificateType" : "DISTRIBUTION_MANAGED"
+ },
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates/QHKZ8Y3N2P"
+ }
+ } ],
+ "links" : {
+ "self" : "https://developerservices2.apple.com:443/services/v1/certificates?filter%5BserialNumber%5D=537DA88EA38736F0707978AA71108214&limit=200"
+ },
+ "meta" : {
+ "paging" : {
+ "total" : 1,
+ "limit" : 200
+ }
+ }
+}
+
+2026-05-11 06:34:33 +0000 Sending request 619F6F2A-8DEB-4F1F-9972-CF77B7CAE096 to for session '>.
+Method: POST
+
+Headers:
+{
+ Accept = "application/vnd.api+json";
+ "Accept-Encoding" = "gzip, deflate";
+ "Content-Length" = 488;
+ "Content-Type" = "application/vnd.api+json";
+ DSESSIONID = 1t7si836d8bdb6gdemd7kql9knho58j7piecsd4n19ioibsqrlga;
+ "User-Agent" = Xcode;
+ "X-Apple-App-Info" = "com.apple.gs.xcode.auth";
+ "X-Apple-GS-Token" = "AAAABLwIAAAAAGkMfC0RDWdzLnhjb2RlLmF1dGi9AJIXFp7ZOJg1pHjHrglobLPZ/KABMoXtmjh9C9+Xt+b2Cs873cQHnl5lBdzR4XHp72OdSKD3AMJSQFWeMc0npJhlpPUFncqXoNm6gx9L/Q9M9oFflyGjw5M46zPpNIWJJprURCeTUQRZsd+WgZ3CBcvKZJgl";
+ "X-Apple-I-Identity-Id" = "001856-08-ee73fd0c-b5f1-4224-9996-334f1a775663";
+ "X-MMe-Client-Info" = " ";
+ "X-Mme-Device-Id" = "A53886C1-B3A5-59E9-BEC3-271E996A4D0C";
+ "X-Xcode-Version" = "26.1 (17B55)";
+}
+
+Payload:
+{"data":{"type":"batch","attributes":{"teamId":"892H6H36S9","resourceList":[{"data":{"type":"codeSignatures","relationships":{"certificate":{"data":{"type":"certificates","id":"QHKZ8Y3N2P"}},"bundleId":{"data":{"type":"bundleIds","id":"6CDNQT8538"}}},"attributes":{"digestHash":"634E265C86EBB1EF5AF5BFC6DB1DC81D988E171776A81C754CB0BE2E7F8556E7","cdHashSha256":"634E265C86EBB1EF5AF5BFC6DB1DC81D988E171776A81C754CB0BE2E7F8556E7","name":"0","teamId":"892H6H36S9"}}}],"resourceVersion":"1"}}}
+2026-05-11 06:34:34 +0000 Received response for 619F6F2A-8DEB-4F1F-9972-CF77B7CAE096 @ . Code = 0
+2026-05-11 06:34:34 +0000 Response payload: {
+ "data" : {
+ "type" : "batch",
+ "id" : "65dabd2f-7cb9-42d9-a4b6-4f6eb7eaed51",
+ "attributes" : {
+ "responseId" : "65dabd2f-7cb9-42d9-a4b6-4f6eb7eaed51",
+ "resourceList" : [ {
+ "type" : "codeSignatures",
+ "id" : "6607e8d9-354b-4403-a933-31d847176494",
+ "attributes" : {
+ "digestHash" : "634E265C86EBB1EF5AF5BFC6DB1DC81D988E171776A81C754CB0BE2E7F8556E7",
+ "cdHashSha256" : "634E265C86EBB1EF5AF5BFC6DB1DC81D988E171776A81C754CB0BE2E7F8556E7",
+ "signature" : "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",
+ "name" : "0",
+ "responseId" : "65dabd2f-7cb9-42d9-a4b6-4f6eb7eaed51",
+ "cmsSignature" : "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",
+ "timestamp" : false
+ },
+ "relationships" : {
+ "bundleId" : {
+ "data" : {
+ "type" : "bundleIds",
+ "id" : "6CDNQT8538"
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/6607e8d9-354b-4403-a933-31d847176494/relationships/bundleId"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/6607e8d9-354b-4403-a933-31d847176494/bundleId"
+ }
+ }
+ },
+ "certificate" : {
+ "data" : {
+ "type" : "certificates",
+ "id" : "QHKZ8Y3N2P"
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/6607e8d9-354b-4403-a933-31d847176494/relationships/certificate"
+ },
+ "related" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/6607e8d9-354b-4403-a933-31d847176494/certificate"
+ }
+ }
+ }
+ },
+ "links" : {
+ "self" : {
+ "href" : "https://developerservices3.apple.com:443/services/v1/codeSignatures/6607e8d9-354b-4403-a933-31d847176494"
+ }
+ }
+ } ],
+ "resourceVersion" : "1"
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch/65dabd2f-7cb9-42d9-a4b6-4f6eb7eaed51"
+ }
+ },
+ "links" : {
+ "self" : "https://developerservices3.apple.com:443/services/v1/batch"
+ }
+}
+
+2026-05-11 06:34:34 +0000 Remote signature for /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root/Payload/Nivesh.app (arch: arm64) is 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
+2026-05-11 06:34:34 +0000 invoking codesign:
+2026-05-11 06:34:34 +0000 codesign output:
+2026-05-11 06:34:34 +0000 Processing step: IDEDistributionZipODRItemStep
+2026-05-11 06:34:34 +0000 Skipping step: IDEDistributionZipODRItemStep because it said so
+2026-05-11 06:34:34 +0000 Skipping step: IDEDistributionZipODRItemStep because it said so
+2026-05-11 06:34:34 +0000 Skipping step: IDEDistributionZipODRItemStep because it said so
+2026-05-11 06:34:34 +0000 Skipping step: IDEDistributionZipODRItemStep because it said so
+2026-05-11 06:34:34 +0000 Processing step: IDEDistributionCreateIPAStep
+2026-05-11 06:34:34 +0000 Running /usr/bin/ditto '-V' '-c' '-k' '--norsrc' '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root' '/var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Packages/Nivesh.ipa'
+2026-05-11 06:34:34 +0000 >>> Copying /var/folders/jh/jw2q678j435140_pdj3dk8400000gn/T/XcodeDistPipeline.~~~isueLD/Root
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/_CodeSignature/CodeResources ...
+2026-05-11 06:34:34 +0000 21785 bytes for ./Payload/Nivesh.app/_CodeSignature/CodeResources
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 855 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCore.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCore.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 694 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCore.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 1383 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCrashlytics.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCrashlytics.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 708 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCrashlytics.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 598 bytes for ./Payload/Nivesh.app/GTMSessionFetcher_GTMSessionFetcherCore.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 724 bytes for ./Payload/Nivesh.app/GTMSessionFetcher_GTMSessionFetcherCore.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/nanopb_nanopb.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 374 bytes for ./Payload/Nivesh.app/nanopb_nanopb.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/nanopb_nanopb.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 668 bytes for ./Payload/Nivesh.app/nanopb_nanopb.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/AppIcon60x60@2x.png ...
+2026-05-11 06:34:34 +0000 4943 bytes for ./Payload/Nivesh.app/AppIcon60x60@2x.png
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 746 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-AppDelegateSwizzler.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-NSData.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 720 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-NSData.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 1105 bytes for ./Payload/Nivesh.app/Firebase_FirebaseInstallations.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseInstallations.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 712 bytes for ./Payload/Nivesh.app/Firebase_FirebaseInstallations.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 855 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCoreInternal.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCoreInternal.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 710 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCoreInternal.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 2102 bytes for ./Payload/Nivesh.app/Firebase_FirebaseAuth.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseAuth.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 694 bytes for ./Payload/Nivesh.app/Firebase_FirebaseAuth.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Logger.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 720 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Logger.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Reachability.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 732 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Reachability.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 2357 bytes for ./Payload/Nivesh.app/Firebase_FirebaseMessaging.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseMessaging.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 704 bytes for ./Payload/Nivesh.app/Firebase_FirebaseMessaging.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleService-Info.plist ...
+2026-05-11 06:34:34 +0000 807 bytes for ./Payload/Nivesh.app/GoogleService-Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib ...
+2026-05-11 06:34:34 +0000 996 bytes for ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib ...
+2026-05-11 06:34:34 +0000 2999 bytes for ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/Info.plist ...
+2026-05-11 06:34:34 +0000 258 bytes for ./Payload/Nivesh.app/Base.lproj/Main.storyboardc/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib ...
+2026-05-11 06:34:34 +0000 2834 bytes for ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-4mO-e4-REQ.nib
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib ...
+2026-05-11 06:34:34 +0000 924 bytes for ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/Info.plist ...
+2026-05-11 06:34:34 +0000 258 bytes for ./Payload/Nivesh.app/Base.lproj/LaunchScreen.storyboardc/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/Firebase_FirebaseABTesting.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseABTesting.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 704 bytes for ./Payload/Nivesh.app/Firebase_FirebaseABTesting.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 2210 bytes for ./Payload/Nivesh.app/BranchSDK_BranchSDK.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/BranchSDK_BranchSDK.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 691 bytes for ./Payload/Nivesh.app/BranchSDK_BranchSDK.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 1105 bytes for ./Payload/Nivesh.app/GoogleDataTransport_GoogleDataTransport.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleDataTransport_GoogleDataTransport.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 722 bytes for ./Payload/Nivesh.app/GoogleDataTransport_GoogleDataTransport.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 373 bytes for ./Payload/Nivesh.app/Promises_FBLPromises.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Promises_FBLPromises.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 684 bytes for ./Payload/Nivesh.app/Promises_FBLPromises.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 856 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Network.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 722 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Network.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Entitlements/Entitlements.plist ...
+2026-05-11 06:34:34 +0000 841 bytes for ./Payload/Nivesh.app/Entitlements/Entitlements.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Entitlements/.gitignore ...
+2026-05-11 06:34:34 +0000 27 bytes for ./Payload/Nivesh.app/Entitlements/.gitignore
+copying file ./Payload/Nivesh.app/Assets.car ...
+2026-05-11 06:34:34 +0000 263032 bytes for ./Payload/Nivesh.app/Assets.car
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/AppIcon76x76@2x~ipad.png ...
+2026-05-11 06:34:34 +0000 6001 bytes for ./Payload/Nivesh.app/AppIcon76x76@2x~ipad.png
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCoreExtension.bundle/PrivacyInfo.xcprivacy
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Firebase_FirebaseCoreExtension.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 712 bytes for ./Payload/Nivesh.app/Firebase_FirebaseCoreExtension.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Nivesh ...
+2026-05-11 06:34:34 +0000 4049424 bytes for ./Payload/Nivesh.app/Nivesh
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy ...
+911 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-UserDefaults.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 732 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-UserDefaults.bundle/Info.plist
+copying file ./Payload/Nivesh.app/Promises_Promises.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 373 bytes for ./Payload/Nivesh.app/Promises_Promises.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/Promises_Promises.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 678 bytes for ./Payload/Nivesh.app/Promises_Promises.bundle/Info.plist
+copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 855 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Environment.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 730 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-Environment.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:34 +0000 1798 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/_CodeSignature/CodeResources
+copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement ...
+2026-05-11 06:34:34 +0000 49520 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/Info.plist ...
+1551 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurement.framework/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:34 +0000 1798 bytes for ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/_CodeSignature/CodeResources
+copying file ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics ...
+2026-05-11 06:34:34 +0000 49504 bytes for ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/Info.plist ...
+1542 bytes for ./Payload/Nivesh.app/Frameworks/FirebaseAnalytics.framework/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources ...
+2026-05-11 06:34:34 +0000 1798 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/_CodeSignature/CodeResources
+copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport ...
+2026-05-11 06:34:34 +0000 49552 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist ...
+1596 bytes for ./Payload/Nivesh.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 478 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 736 bytes for ./Payload/Nivesh.app/GoogleUtilities_GoogleUtilities-MethodSwizzler.bundle/Info.plist
+copying file ./Payload/Nivesh.app/embedded.mobileprovision ...
+2026-05-11 06:34:34 +0000 12798 bytes for ./Payload/Nivesh.app/embedded.mobileprovision
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/Info.plist ...
+2026-05-11 06:34:34 +0000 2750 bytes for ./Payload/Nivesh.app/Info.plist
+copying file ./Payload/Nivesh.app/Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy ...
+2026-05-11 06:34:34 +0000 1862 bytes for ./Payload/Nivesh.app/Firebase_FirebaseDynamicLinks.bundle/PrivacyInfo.xcprivacy
+copying file ./Payload/Nivesh.app/Firebase_FirebaseDynamicLinks.bundle/Info.plist ...
+2026-05-11 06:34:34 +0000 710 bytes for ./Payload/Nivesh.app/Firebase_FirebaseDynamicLinks.bundle/Info.plist
+2026-05-11 06:34:34 +0000 copying file ./Payload/Nivesh.app/PkgInfo ...
+8 bytes for ./Payload/Nivesh.app/PkgInfo
+2026-05-11 06:34:34 +0000 /usr/bin/ditto exited with 0
+2026-05-11 06:34:34 +0000 Processing step: IDEDistributionAppStoreInformationStep
+2026-05-11 06:34:34 +0000 Skipping step: IDEDistributionAppStoreInformationStep because it said so
+2026-05-11 06:34:34 +0000 Processing step: IDEDistributionGenerateProcessedDistributionItems
+2026-05-11 06:34:34 +0000 IDEDistributionItem init
+2026-05-11 06:34:34 +0000 IDEDistributionItem init
+2026-05-11 06:34:34 +0000 IDEDistributionItem init
+2026-05-11 06:34:34 +0000 IDEDistributionItem init
+2026-05-11 06:34:34 +0000 Processing step: IDEDistributionCreateManifestStep
diff --git a/src/Nivesh.xcodeproj/project.pbxproj b/src/Nivesh.xcodeproj/project.pbxproj
index 291fcb5..63fe2a6 100644
--- a/src/Nivesh.xcodeproj/project.pbxproj
+++ b/src/Nivesh.xcodeproj/project.pbxproj
@@ -21,6 +21,7 @@
1EBE678A2D5495A900F6C6D0 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EBE67892D5495A900F6C6D0 /* SystemConfiguration.framework */; };
1EBE678C2D5495B900F6C6D0 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EBE678B2D5495B900F6C6D0 /* WebKit.framework */; };
1EBE678E2D5495D000F6C6D0 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EBE678D2D5495D000F6C6D0 /* CoreSpotlight.framework */; };
+ 1EBE67982D5C782000F6C6D0 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBE67972D5C780100F6C6D0 /* AppManager.swift */; };
595F23A525CEFBFE0053416C /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595F239A25CEFBFD0053416C /* Settings.swift */; };
595F23A625CEFBFE0053416C /* Entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 595F239B25CEFBFD0053416C /* Entitlements */; };
595F23A725CEFBFE0053416C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 595F239C25CEFBFD0053416C /* Assets.xcassets */; };
@@ -41,6 +42,7 @@
1EBE67892D5495A900F6C6D0 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
1EBE678B2D5495B900F6C6D0 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
1EBE678D2D5495D000F6C6D0 /* CoreSpotlight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreSpotlight.framework; path = System/Library/Frameworks/CoreSpotlight.framework; sourceTree = SDKROOT; };
+ 1EBE67972D5C780100F6C6D0 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; };
59333BAA25CFF706003392A4 /* Nivesh.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Nivesh.app; sourceTree = BUILT_PRODUCTS_DIR; };
595F239A25CEFBFD0053416C /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Settings.swift; path = Nivesh/Settings.swift; sourceTree = ""; };
595F239B25CEFBFD0053416C /* Entitlements */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Entitlements; path = Nivesh/Entitlements; sourceTree = ""; };
@@ -103,6 +105,7 @@
children = (
1EBE67822D54865300F6C6D0 /* NiveshRelease.entitlements */,
595F23A225CEFBFE0053416C /* AppDelegate.swift */,
+ 1EBE67972D5C780100F6C6D0 /* AppManager.swift */,
595F239C25CEFBFD0053416C /* Assets.xcassets */,
595F239B25CEFBFD0053416C /* Entitlements */,
595F23A025CEFBFE0053416C /* Info.plist */,
@@ -205,6 +208,7 @@
595F23A525CEFBFE0053416C /* Settings.swift in Sources */,
595F23AE25CEFBFE0053416C /* Printer.swift in Sources */,
595F23AC25CEFBFE0053416C /* ViewController.swift in Sources */,
+ 1EBE67982D5C782000F6C6D0 /* AppManager.swift in Sources */,
595F23AA25CEFBFE0053416C /* PushNotifications.swift in Sources */,
595F23AF25CEFBFE0053416C /* WebView.swift in Sources */,
);
@@ -362,7 +366,7 @@
CODE_SIGN_ENTITLEMENTS = Nivesh/Entitlements/Entitlements.plist;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = 892H6H36S9;
INFOPLIST_FILE = Nivesh/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
@@ -393,7 +397,7 @@
CODE_SIGN_ENTITLEMENTS = Nivesh/NiveshRelease.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = 892H6H36S9;
INFOPLIST_FILE = Nivesh/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
diff --git a/src/Nivesh.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/Nivesh.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 101270b..919434a 100644
--- a/src/Nivesh.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/src/Nivesh.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -1,7 +1,7 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Nivesh.xcodeproj/xcshareddata/xcschemes/Nivesh.xcscheme b/src/Nivesh.xcodeproj/xcshareddata/xcschemes/Nivesh.xcscheme
index 1c7b6d6..1a3e9d7 100644
--- a/src/Nivesh.xcodeproj/xcshareddata/xcschemes/Nivesh.xcscheme
+++ b/src/Nivesh.xcodeproj/xcshareddata/xcschemes/Nivesh.xcscheme
@@ -54,6 +54,16 @@
+
+
+
+
diff --git a/src/Nivesh/.DS_Store b/src/Nivesh/.DS_Store
index 82dac0a..9f67050 100644
Binary files a/src/Nivesh/.DS_Store and b/src/Nivesh/.DS_Store differ
diff --git a/src/Nivesh/AppDelegate.swift b/src/Nivesh/AppDelegate.swift
index 96585e2..63a8667 100644
--- a/src/Nivesh/AppDelegate.swift
+++ b/src/Nivesh/AppDelegate.swift
@@ -1,151 +1,85 @@
-import UIKit
-import FirebaseCore
-import FirebaseMessaging
-import UserNotifications
-import BranchSDK
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
- var window : UIWindow?
-
- func application(_ application: UIApplication,
- didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
-
-// TODO: if we're using Firebase, uncomment next string
- FirebaseApp.configure()
-
- // [START set_messaging_delegate]
- Messaging.messaging().delegate = self
- // [END set_messaging_delegate]
- // Register for remote notifications. This shows a permission dialog on first run, to
- // show the dialog at a more appropriate time move this registration accordingly.
- // [START register_for_notifications]
-
- UNUserNotificationCenter.current().delegate = self
-
- let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
- UNUserNotificationCenter.current().requestAuthorization(
- options: authOptions,
- completionHandler: {_, _ in })
-
-// TODO: if we're using Firebase, uncomment next string
- application.registerForRemoteNotifications()
-
- // [END register_for_notifications]
-
- // This version of `initSession` includes the source UIScene in the callback
- BranchScene.shared().initSession(launchOptions: launchOptions, registerDeepLinkHandler: { (params, error, scene) in
-
- })
- return true
- }
-
-
- // [START receive_message]
- func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
- // If you are receiving a notification message while your app is in the background,
- // this callback will not be fired till the user taps on the notification launching the application.
- // With swizzling disabled you must let Messaging know about the message, for Analytics
- Messaging.messaging().appDidReceiveMessage(userInfo)
- // Print message ID.
- if let messageID = userInfo[gcmMessageIDKey] {
- print("Message ID 1: \(messageID)")
- }
-
- // Print full message.
- print("push userInfo 1:", userInfo)
- sendPushToWebView(userInfo: userInfo)
- }
-
- func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
- fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
- // If you are receiving a notification message while your app is in the background,
- // this callback will not be fired till the user taps on the notification launching the application.
- // With swizzling disabled you must let Messaging know about the message, for Analytics
- Messaging.messaging().appDidReceiveMessage(userInfo)
- // Print message ID.
- if let messageID = userInfo[gcmMessageIDKey] {
- print("Message ID 2: \(messageID)")
- }
-
- // Print full message. **
- print("push userInfo 2:", userInfo)
- sendPushToWebView(userInfo: userInfo)
-
- completionHandler(UIBackgroundFetchResult.newData)
- }
-
- // [END receive_message]
- func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
- print("Unable to register for remote notifications: \(error.localizedDescription)")
- }
-
- // This function is added here only for debugging purposes, and can be removed if swizzling is enabled.
- // If swizzling is disabled then this function must be implemented so that the APNs token can be paired to
- // the FCM registration token.
- func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
- print("APNs token retrieved: \(deviceToken)")
-
- // With swizzling disabled you must set the APNs token here.
- Messaging.messaging().apnsToken = deviceToken
- }
- }
-
- // [START ios_10_message_handling]
- extension AppDelegate : UNUserNotificationCenterDelegate {
-
- func userNotificationCenter(_ center: UNUserNotificationCenter,
- willPresent notification: UNNotification,
- withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
- let userInfo = notification.request.content.userInfo
-
- // With swizzling disabled you must let Messaging know about the message, for Analytics
- Messaging.messaging().appDidReceiveMessage(userInfo)
- // Print message ID.
- if let messageID = userInfo[gcmMessageIDKey] {
- print("Message ID: 3 \(messageID)")
- }
-
- // Print full message.
- print("push userInfo 3:", userInfo)
- sendPushToWebView(userInfo: userInfo)
-
- // Change this to your preferred presentation option
- completionHandler([[.banner, .list, .sound]])
- }
-
- func userNotificationCenter(_ center: UNUserNotificationCenter,
- didReceive response: UNNotificationResponse,
- withCompletionHandler completionHandler: @escaping () -> Void) {
- let userInfo = response.notification.request.content.userInfo
- // Print message ID.
- if let messageID = userInfo[gcmMessageIDKey] {
- print("Message ID 4: \(messageID)")
- }
-
- // With swizzling disabled you must let Messaging know about the message, for Analytics
- Messaging.messaging().appDidReceiveMessage(userInfo)
- // Print full message.
- print("push userInfo 4:", userInfo)
- sendPushToWebView(userInfo: userInfo)
-
- completionHandler()
- }
- }
- // [END ios_10_message_handling]
-
- extension AppDelegate : MessagingDelegate {
- // [START refresh_token]
- func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
- print("Firebase registration token: \(String(describing: fcmToken))")
-
- let dataDict:[String: String] = ["token": fcmToken ?? ""]
- NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
- handleFCMToken()
- // TODO: If necessary send token to application server.
- // Note: This callback is fired at each app startup and whenever a new token is generated.
- }
- // [END refresh_token]
- }
+import UIKit
+import FirebaseCore
+import FirebaseMessaging
+import UserNotifications
+import BranchSDK
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+ var window: UIWindow?
+ let gcmMessageIDKey = "gcm.message_id"
+
+ func application(_ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
+
+ FirebaseApp.configure()
+ Messaging.messaging().delegate = self
+ UNUserNotificationCenter.current().delegate = self // ✅ critical line
+
+ registerForPushNotifications()
+
+ #if DEBUG
+ print("Requesting notification permission...")
+ UNUserNotificationCenter.current().getNotificationSettings { settings in
+ print("Notification settings: \(settings)")
+ }
+ #endif
+
+ // Branch SDK setup
+ BranchScene.shared().initSession(launchOptions: launchOptions, registerDeepLinkHandler: { (params, error, scene) in
+ })
+
+ return true
+ }
+
+ func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
+ #if DEBUG
+ print("❌ Unable to register for remote notifications: \(error.localizedDescription)")
+ #endif
+ }
+
+ func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
+ Messaging.messaging().apnsToken = deviceToken
+ }
+}
+
+// MARK: - Push Registration
+func registerForPushNotifications() {
+ UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
+ if granted {
+ DispatchQueue.main.async {
+ UIApplication.shared.registerForRemoteNotifications()
+ }
+ } else {
+ #if DEBUG
+ print("Notification permission denied: \(error?.localizedDescription ?? "No error")")
+ #endif
+ }
+ }
+}
+
+// MARK: - UNUserNotificationCenterDelegate
+extension AppDelegate: UNUserNotificationCenterDelegate {
+ func userNotificationCenter(_ center: UNUserNotificationCenter,
+ willPresent notification: UNNotification,
+ withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
+ completionHandler([[.banner, .list, .sound]])
+ }
+
+ func userNotificationCenter(_ center: UNUserNotificationCenter,
+ didReceive response: UNNotificationResponse,
+ withCompletionHandler completionHandler: @escaping () -> Void) {
+ completionHandler()
+ }
+}
+
+// MARK: - Firebase Messaging Delegate
+extension AppDelegate: MessagingDelegate {
+ func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
+ UserDefaults.standard.set(fcmToken, forKey: "FCMToken")
+ NotificationCenter.default.post(name: Notification.Name("FCMToken"),
+ object: nil,
+ userInfo: ["token": fcmToken ?? ""])
+ }
+}
diff --git a/src/Nivesh/Assets.xcassets/.DS_Store b/src/Nivesh/Assets.xcassets/.DS_Store
index fc87c19..52b0bef 100644
Binary files a/src/Nivesh/Assets.xcassets/.DS_Store and b/src/Nivesh/Assets.xcassets/.DS_Store differ
diff --git a/src/Nivesh/Info.plist b/src/Nivesh/Info.plist
index df74e71..3ee9968 100644
--- a/src/Nivesh/Info.plist
+++ b/src/Nivesh/Info.plist
@@ -2,6 +2,8 @@
+ NSFaceIDUsageDescription
+ Unlock Nivesh using Face ID
BGTaskSchedulerPermittedIdentifiers
$(PRODUCT_BUNDLE_IDENTIFIER)
@@ -31,7 +33,7 @@
com.nivesh.app
CFBundleURLSchemes
- app
+ com.nivesh.app
@@ -43,11 +45,6 @@
LSRequiresIPhoneOS
- NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
-
NSCameraUsageDescription
App needs to capture user document for KYC mandated by Indian regulation (SEBI)
NSLocationWhenInUseUsageDescription
@@ -77,6 +74,7 @@
processing
remote-notification
+ fetch
UILaunchStoryboardName
LaunchScreen
diff --git a/src/Nivesh/PushNotifications.swift b/src/Nivesh/PushNotifications.swift
index e73bd67..7eeb1ca 100644
--- a/src/Nivesh/PushNotifications.swift
+++ b/src/Nivesh/PushNotifications.swift
@@ -1,173 +1,176 @@
-import WebKit
-import FirebaseMessaging
-
-class SubscribeMessage {
- var topic = ""
- var eventValue = ""
- var unsubscribe = false
- struct Keys {
- static var TOPIC = "topic"
- static var UNSUBSCRIBE = "unsubscribe"
- static var EVENTVALUE = "eventValue"
- }
- convenience init(dict: Dictionary) {
- self.init()
- if let topic = dict[Keys.TOPIC] as? String {
- self.topic = topic
- }
- if let unsubscribe = dict[Keys.UNSUBSCRIBE] as? Bool {
- self.unsubscribe = unsubscribe
- }
- if let eventValue = dict[Keys.EVENTVALUE] as? String {
- self.eventValue = eventValue
- }
- }
-}
-
-func handleSubscribeTouch(message: WKScriptMessage) {
- // [START subscribe_topic]
- let subscribeMessages = parseSubscribeMessage(message: message)
- if (subscribeMessages.count > 0){
- let _message = subscribeMessages[0]
- if (_message.unsubscribe) {
- Messaging.messaging().unsubscribe(fromTopic: _message.topic) { error in }
- }
- else {
- Messaging.messaging().subscribe(toTopic: _message.topic) { error in }
- }
- }
-
-
- // [END subscribe_topic]
-}
-
-func parseSubscribeMessage(message: WKScriptMessage) -> [SubscribeMessage] {
- var subscribeMessages = [SubscribeMessage]()
- if let objStr = message.body as? String {
-
- let data: Data = objStr.data(using: .utf8)!
- do {
- let jsObj = try JSONSerialization.jsonObject(with: data, options: .init(rawValue: 0))
- if let jsonObjDict = jsObj as? Dictionary {
- let subscribeMessage = SubscribeMessage(dict: jsonObjDict)
- subscribeMessages.append(subscribeMessage)
- } else if let jsonArr = jsObj as? [Dictionary] {
- for jsonObj in jsonArr {
- let sMessage = SubscribeMessage(dict: jsonObj)
- subscribeMessages.append(sMessage)
- }
- }
- } catch _ {
-
- }
- }
- return subscribeMessages
-}
-
-func returnPermissionResult(isGranted: Bool){
- DispatchQueue.main.async(execute: {
- if (isGranted){
- Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-request', { detail: 'granted' }))")
- }
- else {
- Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-request', { detail: 'denied' }))")
- }
- })
-}
-func returnPermissionState(state: String){
- DispatchQueue.main.async(execute: {
- Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-state', { detail: '\(state)' }))")
- })
-}
-
-func handlePushPermission() {
- UNUserNotificationCenter.current().getNotificationSettings () { settings in
- switch settings.authorizationStatus {
- case .notDetermined:
- let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
- UNUserNotificationCenter.current().requestAuthorization(
- options: authOptions,
- completionHandler: { (success, error) in
- if error == nil {
- if success == true {
- returnPermissionResult(isGranted: true)
- DispatchQueue.main.async {
- UIApplication.shared.registerForRemoteNotifications()
- }
- }
- else {
- returnPermissionResult(isGranted: false)
- }
- }
- else {
- returnPermissionResult(isGranted: false)
- }
- }
- )
- case .denied:
- returnPermissionResult(isGranted: false)
- case .authorized, .ephemeral, .provisional:
- returnPermissionResult(isGranted: true)
- @unknown default:
- return;
- }
- }
-}
-func handlePushState() {
- UNUserNotificationCenter.current().getNotificationSettings () { settings in
- switch settings.authorizationStatus {
- case .notDetermined:
- returnPermissionState(state: "notDetermined")
- case .denied:
- returnPermissionState(state: "denied")
- case .authorized:
- returnPermissionState(state: "authorized")
- case .ephemeral:
- returnPermissionState(state: "ephemeral")
- case .provisional:
- returnPermissionState(state: "provisional")
- @unknown default:
- returnPermissionState(state: "unknown")
- return;
- }
- }
-}
-
-func checkViewAndEvaluate(event: String, detail: String) {
- if (!Nivesh.webView.isHidden && !Nivesh.webView.isLoading ) {
- DispatchQueue.main.async(execute: {
- Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('\(event)', { detail: \(detail) }))")
- })
- }
- else {
- DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
- checkViewAndEvaluate(event: event, detail: detail)
- }
- }
-}
-
-func handleFCMToken(){
- DispatchQueue.main.async(execute: {
- Messaging.messaging().token { token, error in
- if let error = error {
- print("Error fetching FCM registration token: \(error)")
- checkViewAndEvaluate(event: "push-token", detail: "ERROR GET TOKEN")
- } else if let token = token {
- print("FCM registration token: \(token)")
- checkViewAndEvaluate(event: "push-token", detail: "'\(token)'")
- }
- }
- })
-}
-
-func sendPushToWebView(userInfo: [AnyHashable: Any]){
- var json = "";
- do {
- let jsonData = try JSONSerialization.data(withJSONObject: userInfo)
- json = String(data: jsonData, encoding: .utf8)!
- } catch {
- print("ERROR: userInfo parsing problem")
- return
- }
- checkViewAndEvaluate(event: "push-notification", detail: json)
-}
+import WebKit
+import FirebaseMessaging
+
+class SubscribeMessage {
+ var topic = ""
+ var eventValue = ""
+ var unsubscribe = false
+ struct Keys {
+ static var TOPIC = "topic"
+ static var UNSUBSCRIBE = "unsubscribe"
+ static var EVENTVALUE = "eventValue"
+ }
+ convenience init(dict: Dictionary) {
+ self.init()
+ if let topic = dict[Keys.TOPIC] as? String {
+ self.topic = topic
+ }
+ if let unsubscribe = dict[Keys.UNSUBSCRIBE] as? Bool {
+ self.unsubscribe = unsubscribe
+ }
+ if let eventValue = dict[Keys.EVENTVALUE] as? String {
+ self.eventValue = eventValue
+ }
+ }
+}
+
+func handleSubscribeTouch(message: WKScriptMessage) {
+ // [START subscribe_topic]
+ let subscribeMessages = parseSubscribeMessage(message: message)
+ if (subscribeMessages.count > 0){
+ let _message = subscribeMessages[0]
+ if (_message.unsubscribe) {
+ Messaging.messaging().unsubscribe(fromTopic: _message.topic) { error in }
+ }
+ else {
+ Messaging.messaging().subscribe(toTopic: _message.topic) { error in }
+ }
+ }
+
+
+ // [END subscribe_topic]
+}
+
+func parseSubscribeMessage(message: WKScriptMessage) -> [SubscribeMessage] {
+ var subscribeMessages = [SubscribeMessage]()
+ if let objStr = message.body as? String {
+
+ let data: Data = objStr.data(using: .utf8)!
+ do {
+ let jsObj = try JSONSerialization.jsonObject(with: data, options: .init(rawValue: 0))
+ if let jsonObjDict = jsObj as? Dictionary {
+ let subscribeMessage = SubscribeMessage(dict: jsonObjDict)
+ subscribeMessages.append(subscribeMessage)
+ } else if let jsonArr = jsObj as? [Dictionary] {
+ for jsonObj in jsonArr {
+ let sMessage = SubscribeMessage(dict: jsonObj)
+ subscribeMessages.append(sMessage)
+ }
+ }
+ } catch _ {
+
+ }
+ }
+ return subscribeMessages
+}
+
+func returnPermissionResult(isGranted: Bool){
+ DispatchQueue.main.async(execute: {
+ if (isGranted){
+ Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-request', { detail: 'granted' }))")
+ }
+ else {
+ Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-request', { detail: 'denied' }))")
+ }
+ })
+}
+func returnPermissionState(state: String){
+ DispatchQueue.main.async(execute: {
+ Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('push-permission-state', { detail: '\(state)' }))")
+ })
+}
+
+func handlePushPermission() {
+ UNUserNotificationCenter.current().getNotificationSettings () { settings in
+ switch settings.authorizationStatus {
+ case .notDetermined:
+ let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
+ UNUserNotificationCenter.current().requestAuthorization(
+ options: authOptions,
+ completionHandler: { (success, error) in
+ if error == nil {
+ if success == true {
+ returnPermissionResult(isGranted: true)
+ DispatchQueue.main.async {
+ UIApplication.shared.registerForRemoteNotifications()
+ }
+ }
+ else {
+ returnPermissionResult(isGranted: false)
+ }
+ }
+ else {
+ returnPermissionResult(isGranted: false)
+ }
+ }
+ )
+ case .denied:
+ returnPermissionResult(isGranted: false)
+ case .authorized, .ephemeral, .provisional:
+ returnPermissionResult(isGranted: true)
+ @unknown default:
+ return;
+ }
+ }
+}
+func handlePushState() {
+ UNUserNotificationCenter.current().getNotificationSettings () { settings in
+ switch settings.authorizationStatus {
+ case .notDetermined:
+ returnPermissionState(state: "notDetermined")
+ case .denied:
+ returnPermissionState(state: "denied")
+ case .authorized:
+ returnPermissionState(state: "authorized")
+ case .ephemeral:
+ returnPermissionState(state: "ephemeral")
+ case .provisional:
+ returnPermissionState(state: "provisional")
+ @unknown default:
+ returnPermissionState(state: "unknown")
+ return;
+ }
+ }
+}
+
+func checkViewAndEvaluate(event: String, detail: String) {
+ if (!Nivesh.webView.isHidden && !Nivesh.webView.isLoading ) {
+ DispatchQueue.main.async(execute: {
+ Nivesh.webView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('\(event)', { detail: \(detail) }))")
+ })
+ }
+ else {
+ DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
+ checkViewAndEvaluate(event: event, detail: detail)
+ }
+ }
+}
+
+func handleFCMToken(){
+ DispatchQueue.main.async(execute: {
+ Messaging.messaging().token { token, error in
+ if let error = error {
+ #if DEBUG
+ print("Error fetching FCM registration token: \(error)")
+ #endif
+ checkViewAndEvaluate(event: "push-token", detail: "ERROR GET TOKEN")
+ } else if let token = token {
+ checkViewAndEvaluate(event: "push-token", detail: "'\(token)'")
+ }
+ }
+ })
+}
+
+func sendPushToWebView(userInfo: [AnyHashable: Any]){
+ var json = "";
+ do {
+ let jsonData = try JSONSerialization.data(withJSONObject: userInfo)
+ json = String(data: jsonData, encoding: .utf8)!
+ } catch {
+ #if DEBUG
+ print("ERROR: userInfo parsing problem")
+ #endif
+ return
+ }
+ checkViewAndEvaluate(event: "push-notification", detail: json)
+}
diff --git a/src/Nivesh/SceneDelegate.swift b/src/Nivesh/SceneDelegate.swift
index 2637dad..ba4af27 100644
--- a/src/Nivesh/SceneDelegate.swift
+++ b/src/Nivesh/SceneDelegate.swift
@@ -95,9 +95,20 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
// This may occur due to temporary interruptions (ex. an incoming phone call).
}
+ var hasLaunched = false
+
func sceneWillEnterForeground(_ scene: UIScene) {
- // Called as the scene transitions from the background to the foreground.
- // Use this method to undo the changes made on entering the background.
+
+ // 🚫 Prevent double call on first launch
+ if !hasLaunched {
+ hasLaunched = true
+ return
+ }
+
+ if let window = self.window,
+ let rootVC = window.rootViewController as? ViewController {
+ rootVC.authenticateUser()
+ }
}
func sceneDidEnterBackground(_ scene: UIScene) {
diff --git a/src/Nivesh/ViewController.swift b/src/Nivesh/ViewController.swift
index 5dafd66..b75038b 100644
--- a/src/Nivesh/ViewController.swift
+++ b/src/Nivesh/ViewController.swift
@@ -1,11 +1,17 @@
import UIKit
import WebKit
+import LocalAuthentication
var webView: WKWebView! = nil
-class ViewController: UIViewController, WKNavigationDelegate, UIDocumentInteractionControllerDelegate {
-
+class ViewController: UIViewController,
+ WKNavigationDelegate,
+ UIDocumentInteractionControllerDelegate,
+ WKUIDelegate,
+ WKScriptMessageHandler {
+
var documentController: UIDocumentInteractionController?
+
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
@@ -15,13 +21,18 @@ class ViewController: UIViewController, WKNavigationDelegate, UIDocumentInteract
@IBOutlet weak var connectionProblemView: UIImageView!
@IBOutlet weak var webviewView: UIView!
var toolbarView: UIToolbar!
-
- var htmlIsLoaded = false;
-
+
+ var htmlIsLoaded = false
+ // 🔐 AUTH STATE
+ var isAuthenticating = false
+ var hasAuthenticatedOnce = false
+ var lockView: UIView?
+
private var themeObservation: NSKeyValueObservation?
var currentWebViewTheme: UIUserInterfaceStyle = .unspecified
+
override var preferredStatusBarStyle : UIStatusBarStyle {
- if #available(iOS 13, *), overrideStatusBar{
+ if #available(iOS 13, *), overrideStatusBar {
if #available(iOS 15, *) {
return .default
} else {
@@ -33,40 +44,59 @@ class ViewController: UIViewController, WKNavigationDelegate, UIDocumentInteract
override func viewDidLoad() {
super.viewDidLoad()
+
initWebView()
initToolbarView()
- loadRootUrl()
-
- NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)), name: UIResponder.keyboardWillHideNotification , object: nil)
-
+
+ // 🔐 Face ID FIRST
+ authenticateUser()
+
+ NotificationCenter.default.addObserver(self,
+ selector: #selector(self.keyboardWillHide(_:)),
+ name: UIResponder.keyboardWillHideNotification,
+ object: nil)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
- Nivesh.webView.frame = calcWebviewFrame(webviewView: webviewView, toolbarView: nil)
+ Nivesh.webView.frame = view.safeAreaLayoutGuide.layoutFrame
}
-
+
@objc func keyboardWillHide(_ notification: NSNotification) {
Nivesh.webView.setNeedsLayout()
}
-
+
func initWebView() {
- Nivesh.webView = createWebView(container: webviewView, WKSMH: self, WKND: self, NSO: self, VC: self)
- webviewView.addSubview(Nivesh.webView);
-
- Nivesh.webView.uiDelegate = self;
- Nivesh.webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)
+ Nivesh.webView = createWebView(
+ container: webviewView,
+ WKSMH: self,
+ WKND: self,
+ NSO: self,
+ VC: self
+ )
- if(pullToRefresh){
+ webviewView.addSubview(Nivesh.webView)
+ Nivesh.webView.uiDelegate = self
+
+ Nivesh.webView.addObserver(
+ self,
+ forKeyPath: #keyPath(WKWebView.estimatedProgress),
+ options: .new,
+ context: nil
+ )
+
+ if pullToRefresh {
let refreshControl = UIRefreshControl()
- refreshControl.addTarget(self, action: #selector(refreshWebView(_:)), for: UIControl.Event.valueChanged)
+ refreshControl.addTarget(self,
+ action: #selector(refreshWebView(_:)),
+ for: .valueChanged)
Nivesh.webView.scrollView.addSubview(refreshControl)
Nivesh.webView.scrollView.bounces = true
}
if #available(iOS 15.0, *), adaptiveUIStyle {
- themeObservation = Nivesh.webView.observe(\.underPageBackgroundColor) { [unowned self] webView, _ in
+ themeObservation = Nivesh.webView.observe(\.underPageBackgroundColor) { [unowned self] _, _ in
currentWebViewTheme = Nivesh.webView.underPageBackgroundColor.isLight() ?? true ? .light : .dark
self.overrideUIStyle()
}
@@ -78,172 +108,264 @@ class ViewController: UIViewController, WKNavigationDelegate, UIDocumentInteract
sender.endRefreshing()
}
- func createToolbarView() -> UIToolbar{
+ func createToolbarView() -> UIToolbar {
let winScene = UIApplication.shared.connectedScenes.first
let windowScene = winScene as! UIWindowScene
- var statusBarHeight = windowScene.statusBarManager?.statusBarFrame.height ?? 60
-
- #if targetEnvironment(macCatalyst)
- if (statusBarHeight == 0){
- statusBarHeight = 30
- }
- #endif
-
+ let statusBarHeight = windowScene.statusBarManager?.statusBarFrame.height ?? 60
+
let toolbarView = UIToolbar(frame: CGRect(x: 0, y: 0, width: webviewView.frame.width, height: 0))
toolbarView.sizeToFit()
- toolbarView.frame = CGRect(x: 0, y: 0, width: webviewView.frame.width, height: toolbarView.frame.height + statusBarHeight)
-// toolbarView.autoresizingMask = [.flexibleTopMargin, .flexibleRightMargin, .flexibleWidth]
-
+ toolbarView.frame = CGRect(
+ x: 0,
+ y: 0,
+ width: webviewView.frame.width,
+ height: toolbarView.frame.height + statusBarHeight
+ )
+
let flex = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let close = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(loadRootUrl))
- toolbarView.setItems([close,flex], animated: true)
-
+ toolbarView.setItems([close, flex], animated: true)
+
toolbarView.isHidden = true
-
return toolbarView
}
-
+
func overrideUIStyle(toDefault: Bool = false) {
if #available(iOS 15.0, *), adaptiveUIStyle {
- if (((htmlIsLoaded && !Nivesh.webView.isHidden) || toDefault) && self.currentWebViewTheme != .unspecified) {
- UIApplication
- .shared
- .connectedScenes
- .flatMap { ($0 as? UIWindowScene)?.windows ?? [] }
- .first { $0.isKeyWindow }?.overrideUserInterfaceStyle = toDefault ? .unspecified : self.currentWebViewTheme;
+ if (((htmlIsLoaded && !Nivesh.webView.isHidden) || toDefault)
+ && self.currentWebViewTheme != .unspecified) {
+
+ UIApplication.shared.connectedScenes
+ .compactMap { $0 as? UIWindowScene }
+ .flatMap { $0.windows }
+ .first { $0.isKeyWindow }?
+ .overrideUserInterfaceStyle = toDefault ? .unspecified : self.currentWebViewTheme
}
}
}
-
+
func initToolbarView() {
- toolbarView = createToolbarView()
-
+ toolbarView = createToolbarView()
webviewView.addSubview(toolbarView)
}
- @objc func loadRootUrl() {
- Nivesh.webView.load(URLRequest(url: SceneDelegate.universalLinkToLaunch ?? SceneDelegate.shortcutLinkToLaunch ?? rootUrl))
+ func showLockScreen() {
+
+ let lockView = UIView(frame: view.bounds)
+ lockView.backgroundColor = UIColor.systemBackground
+
+ let icon = UIImageView(image: UIImage(systemName: "faceid"))
+ icon.tintColor = .systemBlue
+ icon.translatesAutoresizingMaskIntoConstraints = false
+ icon.contentMode = .scaleAspectFit
+
+ let label = UILabel()
+ label.text = "Face ID Required\nto open Nivesh"
+ label.textAlignment = .center
+ label.numberOfLines = 2
+ label.font = UIFont.systemFont(ofSize: 22, weight: .semibold)
+ icon.tintColor = .systemBlue
+ label.translatesAutoresizingMaskIntoConstraints = false
+
+ lockView.addSubview(icon)
+ lockView.addSubview(label)
+
+ NSLayoutConstraint.activate([
+ icon.centerXAnchor.constraint(equalTo: lockView.centerXAnchor),
+ icon.centerYAnchor.constraint(equalTo: lockView.centerYAnchor, constant: -40),
+ icon.heightAnchor.constraint(equalToConstant: 60),
+ icon.widthAnchor.constraint(equalToConstant: 60),
+
+ label.topAnchor.constraint(equalTo: icon.bottomAnchor, constant: 20),
+ label.centerXAnchor.constraint(equalTo: lockView.centerXAnchor)
+ ])
+
+ self.view.addSubview(lockView)
+ self.lockView = lockView
+ }
+
+ // 🔐 Face ID
+ func authenticateUser() {
+
+ if isAuthenticating { return }
+
+ showLockScreen() // 👈 show UI first
+ isAuthenticating = true
+
+ let context = LAContext()
+ var error: NSError?
+
+ if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) {
+
+ context.evaluatePolicy(.deviceOwnerAuthentication,
+ localizedReason: "Unlock Nivesh") { success, _ in
+
+ DispatchQueue.main.async {
+
+ self.isAuthenticating = false
+
+ if success {
+ self.hideLockScreen() // 👈 remove UI
+ self.loadRootUrl()
+ } else {
+ self.showRetry()
+ }
+ }
+ }
+
+ } else {
+ isAuthenticating = false
+ hideLockScreen()
+ loadRootUrl()
+ }
+ }
+
+ func showRetry() {
+ let alert = UIAlertController(
+ title: "Authentication Failed",
+ message: "Try again",
+ preferredStyle: .alert
+ )
+
+ alert.addAction(UIAlertAction(title: "Retry", style: .default) { _ in
+ self.authenticateUser()
+ })
+
+ present(alert, animated: true)
+ }
+
+ func hideLockScreen() {
+ lockView?.removeFromSuperview()
+ lockView = nil
}
- func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
+ @objc func loadRootUrl() {
+ Nivesh.webView.load(URLRequest(
+ url: SceneDelegate.universalLinkToLaunch
+ ?? SceneDelegate.shortcutLinkToLaunch
+ ?? rootUrl
+ ))
+ }
+
+ func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
htmlIsLoaded = true
-
- self.setProgress(1.0, true)
- self.animateConnectionProblem(false)
-
+
+ setProgress(1.0, true)
+ animateConnectionProblem(false)
+
DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) {
Nivesh.webView.isHidden = false
self.loadingView.isHidden = true
-
self.setProgress(0.0, false)
-
self.overrideUIStyle()
}
}
-
+
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
- htmlIsLoaded = false;
-
- if (error as NSError)._code != (-999) {
- self.overrideUIStyle(toDefault: true);
- webView.isHidden = true;
- loadingView.isHidden = false;
- animateConnectionProblem(true);
-
- setProgress(0.05, true);
+ htmlIsLoaded = false
+
+ if (error as NSError)._code != -999 {
+ overrideUIStyle(toDefault: true)
+
+ webView.isHidden = true
+ loadingView.isHidden = false
+ animateConnectionProblem(true)
+
+ setProgress(0.05, true)
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
- self.setProgress(0.1, true);
+ self.setProgress(0.1, true)
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
- self.loadRootUrl();
+ self.loadRootUrl()
}
}
}
}
-
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
-
- if (keyPath == #keyPath(WKWebView.estimatedProgress) &&
- Nivesh.webView.isLoading &&
- !self.loadingView.isHidden &&
- !self.htmlIsLoaded) {
- var progress = Float(Nivesh.webView.estimatedProgress);
-
- if (progress >= 0.8) { progress = 1.0; };
- if (progress >= 0.3) { self.animateConnectionProblem(false); }
-
- self.setProgress(progress, true);
+
+ override func observeValue(forKeyPath keyPath: String?,
+ of object: Any?,
+ change: [NSKeyValueChangeKey : Any]?,
+ context: UnsafeMutableRawPointer?) {
+
+ if keyPath == #keyPath(WKWebView.estimatedProgress),
+ Nivesh.webView.isLoading,
+ !loadingView.isHidden,
+ !htmlIsLoaded {
+
+ var progress = Float(Nivesh.webView.estimatedProgress)
+
+ if progress >= 0.8 { progress = 1.0 }
+ if progress >= 0.3 { animateConnectionProblem(false) }
+
+ setProgress(progress, true)
}
}
-
+
func setProgress(_ progress: Float, _ animated: Bool) {
- self.progressView.setProgress(progress, animated: animated);
+ progressView.setProgress(progress, animated: animated)
}
-
-
+
func animateConnectionProblem(_ show: Bool) {
- if (show) {
- self.connectionProblemView.isHidden = false;
- self.connectionProblemView.alpha = 0
- UIView.animate(withDuration: 0.7, delay: 0, options: [.repeat, .autoreverse], animations: {
+ if show {
+ connectionProblemView.isHidden = false
+ connectionProblemView.alpha = 0
+
+ UIView.animate(withDuration: 0.7,
+ delay: 0,
+ options: [.repeat, .autoreverse]) {
self.connectionProblemView.alpha = 1
- })
- }
- else {
- UIView.animate(withDuration: 0.3, delay: 0, options: [], animations: {
- self.connectionProblemView.alpha = 0 // Here you will get the animation you want
- }, completion: { _ in
- self.connectionProblemView.isHidden = true;
- self.connectionProblemView.layer.removeAllAnimations();
- })
+ }
+
+ } else {
+ UIView.animate(withDuration: 0.3) {
+ self.connectionProblemView.alpha = 0
+ } completion: { _ in
+ self.connectionProblemView.isHidden = true
+ self.connectionProblemView.layer.removeAllAnimations()
+ }
}
}
-
+
deinit {
- Nivesh.webView.removeObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress))
+ Nivesh.webView.removeObserver(self,
+ forKeyPath: #keyPath(WKWebView.estimatedProgress))
}
-}
+ // 🔗 JS Bridge
+ func userContentController(_ userContentController: WKUserContentController,
+ didReceive message: WKScriptMessage) {
-extension UIColor {
- // Check if the color is light or dark, as defined by the injected lightness threshold.
- // Some people report that 0.7 is best. I suggest to find out for yourself.
- // A nil value is returned if the lightness couldn't be determined.
- func isLight(threshold: Float = 0.5) -> Bool? {
- let originalCGColor = self.cgColor
+ switch message.name {
+ case "request-print":
+ print("Print requested")
- // Now we need to convert it to the RGB colorspace. UIColor.white / UIColor.black are greyscale and not RGB.
- // If you don't do this then you will crash when accessing components index 2 below when evaluating greyscale colors.
- let RGBCGColor = originalCGColor.converted(to: CGColorSpaceCreateDeviceRGB(), intent: .defaultIntent, options: nil)
- guard let components = RGBCGColor?.components else {
- return nil
- }
- guard components.count >= 3 else {
- return nil
- }
+ case "request-push-permission":
+ requestPushPermissionIfNeeded { status in
+ print("Push permission: \(status)")
+ }
- let brightness = Float(((components[0] * 299) + (components[1] * 587) + (components[2] * 114)) / 1000)
- return (brightness > threshold)
+ case "request-device-info":
+ sendDeviceInfoToWeb(webView: Nivesh.webView)
+
+ default:
+ break
+ }
}
}
-extension ViewController: WKScriptMessageHandler {
- func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
- if message.name == "print" {
- printView(webView: Nivesh.webView)
- }
- if message.name == "push-subscribe" {
- handleSubscribeTouch(message: message)
- }
- if message.name == "push-permission-request" {
- handlePushPermission()
- }
- if message.name == "push-permission-state" {
- handlePushState()
- }
- if message.name == "push-token" {
- handleFCMToken()
- }
- }
+// UIColor extension
+extension UIColor {
+ func isLight(threshold: Float = 0.5) -> Bool? {
+ guard let components = self.cgColor.converted(
+ to: CGColorSpaceCreateDeviceRGB(),
+ intent: .defaultIntent,
+ options: nil
+ )?.components, components.count >= 3 else { return nil }
+
+ let brightness = Float(
+ ((components[0]*299)+(components[1]*587)+(components[2]*114))/1000
+ )
+ return brightness > threshold
+ }
}
diff --git a/src/Nivesh/WebView.swift b/src/Nivesh/WebView.swift
index ad22578..a156b23 100644
--- a/src/Nivesh/WebView.swift
+++ b/src/Nivesh/WebView.swift
@@ -3,401 +3,151 @@ import UIKit
import AuthenticationServices
import SafariServices
import FirebaseMessaging
+import UserNotifications
+import Security
+
+// ---------- Keychain Helper ----------
+struct KeychainHelper {
+ static func save(key: String, data: Data) -> Bool {
+ let query: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrAccount as String: key,
+ kSecValueData as String: data
+ ]
+ SecItemDelete(query as CFDictionary)
+ let status = SecItemAdd(query as CFDictionary, nil)
+ return status == errSecSuccess
+ }
+
+ static func load(key: String) -> Data? {
+ let query: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrAccount as String: key,
+ kSecReturnData as String: kCFBooleanTrue!,
+ kSecMatchLimit as String: kSecMatchLimitOne
+ ]
+ var dataTypeRef: AnyObject? = nil
+ let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)
+ return status == errSecSuccess ? dataTypeRef as? Data : nil
+ }
+}
+
+// ---------- App UUID ----------
+private let AppUUIDKey = "com.yourcompany.appscoped.uuid"
+func getAppScopedUUID() -> String {
+ if let data = KeychainHelper.load(key: AppUUIDKey),
+ let uuid = String(data: data, encoding: .utf8) {
+ return uuid
+ }
+ let newUUID = UUID().uuidString
+ _ = KeychainHelper.save(key: AppUUIDKey, data: Data(newUUID.utf8))
+ return newUUID
+}
-func createWebView(container: UIView, WKSMH: WKScriptMessageHandler, WKND: WKNavigationDelegate, NSO: NSObject, VC: ViewController) -> WKWebView{
+// ---------- CREATE WEBVIEW (FIXED) ----------
+func createWebView(
+ container: UIView,
+ WKSMH: WKScriptMessageHandler,
+ WKND: WKNavigationDelegate,
+ NSO: NSObject,
+ VC: ViewController
+) -> WKWebView {
let config = WKWebViewConfiguration()
let userContentController = WKUserContentController()
- userContentController.add(WKSMH, name: "print")
- userContentController.add(WKSMH, name: "push-subscribe")
- userContentController.add(WKSMH, name: "push-permission-request")
- userContentController.add(WKSMH, name: "push-permission-state")
- userContentController.add(WKSMH, name: "push-token")
+ userContentController.add(WKSMH, name: "request-print")
+ userContentController.add(WKSMH, name: "request-push-permission")
+ userContentController.add(WKSMH, name: "request-push-status")
+ userContentController.add(WKSMH, name: "request-device-info")
config.userContentController = userContentController
-
- config.limitsNavigationsToAppBoundDomains = false;
+ config.limitsNavigationsToAppBoundDomains = false
config.allowsInlineMediaPlayback = true
config.preferences.javaScriptCanOpenWindowsAutomatically = true
config.preferences.setValue(true, forKey: "standalone")
-
- let webView = WKWebView(frame: calcWebviewFrame(webviewView: container, toolbarView: nil), configuration: config)
-
- setCustomCookie(webView: webView)
- webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+ // ✅ FIXED: removed calcWebviewFrame
+ let webView = WKWebView(frame: container.bounds, configuration: config)
- webView.isHidden = true;
+ // ✅ FIXED autoresizing issue
+ webView.autoresizingMask = [
+ UIView.AutoresizingMask.flexibleWidth,
+ UIView.AutoresizingMask.flexibleHeight
+ ]
+ webView.isHidden = true
webView.navigationDelegate = WKND
webView.scrollView.bounces = false
webView.scrollView.contentInsetAdjustmentBehavior = .never
webView.allowsBackForwardNavigationGestures = true
-
+ webView.allowsLinkPreview = false
+
let deviceModel = UIDevice.current.model
let osVersion = UIDevice.current.systemVersion
- let deviceID = UIDevice.current.identifierForVendor!.uuidString
- let deviceName = UIDevice.current.name
- let FCMToken = Messaging.messaging().fcmToken
-
+
webView.configuration.applicationNameForUserAgent = "Safari/604.1"
- webView.customUserAgent = "Mozilla/5.0 (\(deviceModel); CPU \(deviceModel) OS \(osVersion.replacingOccurrences(of: ".", with: "_")) like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/\(osVersion) Mobile/15E148 Safari/604.1 PWAShell"
+ webView.customUserAgent =
+ "Mozilla/5.0 (\(deviceModel); CPU iPhone OS \(osVersion.replacingOccurrences(of: ".", with: "_")) like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/\(osVersion) Mobile/15E148 Safari/604.1 PWAShell"
- webView.addObserver(NSO, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: NSKeyValueObservingOptions.new, context: nil)
-
- let localStorageData: [String: Any] = [
- "model": deviceModel,
- "systemVersion": osVersion,
- "deviceID": deviceID,
- "deviceName": deviceName,
- "FCMtoken" : FCMToken!
- ]
-
-
- if JSONSerialization.isValidJSONObject(localStorageData),
- let data = try? JSONSerialization.data(withJSONObject: localStorageData, options: []),
- let value = String(data: data, encoding: .utf8) {
-
- let _deviceCookie = HTTPCookie(properties: [
- .domain: rootUrl.host!,
- .path: "/",
- .name: "deviceInfo",
- .value: "\(value)",
- .secure: "FALSE",
- .expires: NSDate(timeIntervalSinceNow: 31556926)
- ])!
+ // ✅ FIXED observer
+ webView.addObserver(
+ NSO,
+ forKeyPath: #keyPath(WKWebView.estimatedProgress),
+ options: NSKeyValueObservingOptions.new,
+ context: nil
+ )
- webView.configuration.websiteDataStore.httpCookieStore.setCookie(_deviceCookie)
- }
-
-
-
#if DEBUG
if #available(iOS 16.4, *) {
webView.isInspectable = true
}
#endif
-
+
return webView
}
-func setAppStoreAsReferrer(contentController: WKUserContentController) {
- let scriptSource = "document.referrer = `app-info://platform/ios-store`;"
- let script = WKUserScript(source: scriptSource, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
- contentController.addUserScript(script);
+// ---------- Minimal Device Info ----------
+func minimalDeviceInfoPayload() -> [String: Any] {
+ return [
+ "platform": "iOS",
+ "osVersion": UIDevice.current.systemVersion,
+ "appUUID": getAppScopedUUID(),
+ "userAgent": "PWAShell"
+ ]
}
-func setCustomCookie(webView: WKWebView) {
-
- let _platformCookie = HTTPCookie(properties: [
- .domain: rootUrl.host!,
- .path: "/",
- .name: platformCookie.name,
- .value: platformCookie.value,
- .secure: "FALSE",
- .expires: NSDate(timeIntervalSinceNow: 31556926)
- ])!
- webView.configuration.websiteDataStore.httpCookieStore.setCookie(_platformCookie)
+// ---------- Send Device Info ----------
+func sendDeviceInfoToWeb(webView: WKWebView) {
+ let payload = minimalDeviceInfoPayload()
+ guard let data = try? JSONSerialization.data(withJSONObject: payload),
+ let jsonString = String(data: data, encoding: .utf8) else { return }
-}
-
-func calcWebviewFrame(webviewView: UIView, toolbarView: UIToolbar?) -> CGRect{
- if ((toolbarView) != nil) {
- return CGRect(x: 0, y: toolbarView!.frame.height, width: webviewView.frame.width, height: webviewView.frame.height - toolbarView!.frame.height)
- }
- else {
- let winScene = UIApplication.shared.connectedScenes.first
- let windowScene = winScene as! UIWindowScene
- var statusBarHeight = windowScene.statusBarManager?.statusBarFrame.height ?? 0
+ let js = "window.__nativeDeviceInfo && window.__nativeDeviceInfo(\(jsonString));"
- switch displayMode {
- case "fullscreen":
- #if targetEnvironment(macCatalyst)
- if let titlebar = windowScene.titlebar {
- titlebar.titleVisibility = .hidden
- titlebar.toolbar = nil
- }
- #endif
- return CGRect(x: 0, y: 0, width: webviewView.frame.width, height: webviewView.frame.height)
- default:
- #if targetEnvironment(macCatalyst)
- statusBarHeight = 29
- #endif
- let windowHeight = webviewView.frame.height - statusBarHeight
- return CGRect(x: 0, y: statusBarHeight, width: webviewView.frame.width, height: windowHeight)
- }
+ DispatchQueue.main.async {
+ webView.evaluateJavaScript(js, completionHandler: nil)
}
}
-extension ViewController: WKUIDelegate, WKDownloadDelegate {
- // redirect new tabs to main webview
- func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
- if (navigationAction.targetFrame == nil) {
- webView.load(navigationAction.request)
- }
- return nil
- }
- // restrict navigation to target host, open external links in 3rd party apps
- func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
- if (navigationAction.request.url?.scheme == "about") {
- return decisionHandler(.allow)
- }
- if (navigationAction.shouldPerformDownload || navigationAction.request.url?.scheme == "blob") {
- return decisionHandler(.download)
- }
-
- if let requestUrl = navigationAction.request.url{
- if let requestHost = requestUrl.host {
- // NOTE: Match auth origin first, because host origin may be a subset of auth origin and may therefore always match
- let matchingAuthOrigin = authOrigins.first(where: { requestHost.range(of: $0) != nil })
- if (matchingAuthOrigin != nil) {
- decisionHandler(.allow)
- if (toolbarView.isHidden) {
- toolbarView.isHidden = false
- webView.frame = calcWebviewFrame(webviewView: webviewView, toolbarView: toolbarView)
- }
- return
- }
-
- let matchingHostOrigin = allowedOrigins.first(where: { requestHost.range(of: $0) != nil })
- if (matchingHostOrigin != nil) {
- // Open in main webview
- decisionHandler(.allow)
- if (!toolbarView.isHidden) {
- toolbarView.isHidden = true
- webView.frame = calcWebviewFrame(webviewView: webviewView, toolbarView: nil)
- }
- return
- }
- if (navigationAction.navigationType == .other &&
- navigationAction.value(forKey: "syntheticClickType") as! Int == 0 &&
- (navigationAction.targetFrame != nil) &&
- // no error here, fake warning
- (navigationAction.sourceFrame != nil)
- ) {
- decisionHandler(.allow)
- return
- }
- else {
- decisionHandler(.cancel)
- }
-
-
- if ["http", "https"].contains(requestUrl.scheme?.lowercased() ?? "") {
- // Can open with SFSafariViewController
- let safariViewController = SFSafariViewController(url: requestUrl)
- self.present(safariViewController, animated: true, completion: nil)
- } else {
- // Scheme is not supported or no scheme is given, use openURL
- if (UIApplication.shared.canOpenURL(requestUrl)) {
- UIApplication.shared.open(requestUrl)
- }
- }
- } else {
- decisionHandler(.cancel)
- if (navigationAction.request.url?.scheme == "tel" || navigationAction.request.url?.scheme == "mailto" ){
- if (UIApplication.shared.canOpenURL(requestUrl)) {
- UIApplication.shared.open(requestUrl)
- }
- }
- else {
- if requestUrl.isFileURL {
- // not tested
- downloadAndOpenFile(url: requestUrl.absoluteURL)
- }
- // if (requestUrl.absoluteString.contains("base64")){
- // downloadAndOpenBase64File(base64String: requestUrl.absoluteString)
- // }
- }
- }
- }
- else {
- decisionHandler(.cancel)
- }
-
- }
- // Handle javascript: `window.alert(message: String)`
- func webView(_ webView: WKWebView,
- runJavaScriptAlertPanelWithMessage message: String,
- initiatedByFrame frame: WKFrameInfo,
- completionHandler: @escaping () -> Void) {
-
- // Set the message as the UIAlertController message
- let alert = UIAlertController(
- title: nil,
- message: message,
- preferredStyle: .alert
- )
-
- // Add a confirmation action “OK”
- let okAction = UIAlertAction(
- title: "OK",
- style: .default,
- handler: { _ in
- // Call completionHandler
- completionHandler()
- }
- )
- alert.addAction(okAction)
-
- // Display the NSAlert
- present(alert, animated: true, completion: nil)
- }
- // Handle javascript: `window.confirm(message: String)`
- func webView(_ webView: WKWebView,
- runJavaScriptConfirmPanelWithMessage message: String,
- initiatedByFrame frame: WKFrameInfo,
- completionHandler: @escaping (Bool) -> Void) {
-
- // Set the message as the UIAlertController message
- let alert = UIAlertController(
- title: nil,
- message: message,
- preferredStyle: .alert
- )
-
- // Add a confirmation action “Cancel”
- let cancelAction = UIAlertAction(
- title: "Cancel",
- style: .cancel,
- handler: { _ in
- // Call completionHandler
- completionHandler(false)
- }
- )
-
- // Add a confirmation action “OK”
- let okAction = UIAlertAction(
- title: "OK",
- style: .default,
- handler: { _ in
- // Call completionHandler
- completionHandler(true)
- }
- )
- alert.addAction(cancelAction)
- alert.addAction(okAction)
-
- // Display the NSAlert
- present(alert, animated: true, completion: nil)
- }
- // Handle javascript: `window.prompt(prompt: String, defaultText: String?)`
- func webView(_ webView: WKWebView,
- runJavaScriptTextInputPanelWithPrompt prompt: String,
- defaultText: String?,
- initiatedByFrame frame: WKFrameInfo,
- completionHandler: @escaping (String?) -> Void) {
-
- // Set the message as the UIAlertController message
- let alert = UIAlertController(
- title: nil,
- message: prompt,
- preferredStyle: .alert
- )
-
- // Add a confirmation action “Cancel”
- let cancelAction = UIAlertAction(
- title: "Cancel",
- style: .cancel,
- handler: { _ in
- // Call completionHandler
- completionHandler(nil)
- }
- )
-
- // Add a confirmation action “OK”
- let okAction = UIAlertAction(
- title: "OK",
- style: .default,
- handler: { _ in
- // Call completionHandler with Alert input
- if let input = alert.textFields?.first?.text {
- completionHandler(input)
+// ---------- Push Permission ----------
+func requestPushPermissionIfNeeded(completion: @escaping (String) -> Void) {
+ UNUserNotificationCenter.current().getNotificationSettings { settings in
+ switch settings.authorizationStatus {
+ case .authorized, .provisional, .ephemeral:
+ completion("granted")
+ case .denied:
+ completion("denied")
+ case .notDetermined:
+ UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, _ in
+ DispatchQueue.main.async {
+ completion(granted ? "granted" : "denied")
}
}
- )
-
- alert.addTextField { textField in
- textField.placeholder = defaultText
+ @unknown default:
+ completion("unknown")
}
- alert.addAction(cancelAction)
- alert.addAction(okAction)
-
- // Display the NSAlert
- present(alert, animated: true, completion: nil)
- }
-
- func downloadAndOpenFile(url: URL){
-
- let destinationFileUrl = url
- let sessionConfig = URLSessionConfiguration.default
- let session = URLSession(configuration: sessionConfig)
- let request = URLRequest(url:url)
- let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
- if let tempLocalUrl = tempLocalUrl, error == nil {
- if let statusCode = (response as? HTTPURLResponse)?.statusCode {
- print("Successfully download. Status code: \(statusCode)")
- }
- do {
- try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
- self.openFile(url: destinationFileUrl)
- } catch (let writeError) {
- print("Error creating a file \(destinationFileUrl) : \(writeError)")
- }
- } else {
- print("Error took place while downloading a file. Error description: \(error?.localizedDescription ?? "N/A") ")
- }
- }
- task.resume()
- }
-
- // func downloadAndOpenBase64File(base64String: String) {
- // // Split the base64 string to extract the data and the file extension
- // let components = base64String.components(separatedBy: ";base64,")
-
- // // Make sure the base64 string has the correct format
- // guard components.count == 2, let format = components.first?.split(separator: "/").last else {
- // print("Invalid base64 string format")
- // return
- // }
-
- // // Remove the data type prefix to get the base64 data
- // let dataString = components.last!
-
- // if let imageData = Data(base64Encoded: dataString) {
- // let documentsUrl: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
- // let destinationFileUrl = documentsUrl.appendingPathComponent("image.\(format)")
-
- // do {
- // try imageData.write(to: destinationFileUrl)
- // self.openFile(url: destinationFileUrl)
- // } catch {
- // print("Error writing image to file url: \(destinationFileUrl): \(error)")
- // }
- // }
- // }
-
- func openFile(url: URL) {
- self.documentController = UIDocumentInteractionController(url: url)
- self.documentController?.delegate = self
- self.documentController?.presentPreview(animated: true)
- }
-
- func webView(_ webView: WKWebView, navigationAction: WKNavigationAction, didBecome download: WKDownload) {
- download.delegate = self
- }
-
- func download(_ download: WKDownload, decideDestinationUsing response: URLResponse,
- suggestedFilename: String,
- completionHandler: @escaping (URL?) -> Void) {
-
- let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
- let fileURL = documentsPath.appendingPathComponent(suggestedFilename)
-
- self.openFile(url: fileURL)
- completionHandler(fileURL)
}
}