From ee29cebab30b8ea654157a89c49d0dd27128d918 Mon Sep 17 00:00:00 2001 From: Akhilesh Date: Thu, 2 Jul 2026 15:34:32 +0530 Subject: [PATCH] Refactor app flows and clean up state handling --- .DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 8196 -> 8196 bytes src/AppManager.swift | 20 + .../DistributionSummary.plist | 151 ++ .../ExportOptions.plist | 18 + src/Nivesh 2026-05-11 12-04-41/Packaging.log | 1684 +++++++++++++++++ src/Nivesh.xcodeproj/project.pbxproj | 8 +- .../contents.xcworkspacedata | 14 +- .../xcshareddata/xcschemes/Nivesh.xcscheme | 10 + src/Nivesh/.DS_Store | Bin 6148 -> 6148 bytes src/Nivesh/AppDelegate.swift | 236 +-- src/Nivesh/Assets.xcassets/.DS_Store | Bin 6148 -> 6148 bytes src/Nivesh/Info.plist | 10 +- src/Nivesh/PushNotifications.swift | 349 ++-- src/Nivesh/SceneDelegate.swift | 15 +- src/Nivesh/ViewController.swift | 392 ++-- src/Nivesh/WebView.swift | 458 +---- 17 files changed, 2535 insertions(+), 830 deletions(-) create mode 100644 src/AppManager.swift create mode 100644 src/Nivesh 2026-05-11 12-04-41/DistributionSummary.plist create mode 100644 src/Nivesh 2026-05-11 12-04-41/ExportOptions.plist create mode 100644 src/Nivesh 2026-05-11 12-04-41/Packaging.log diff --git a/.DS_Store b/.DS_Store index bddaf15e6780c0512f266b9d9bf5ae2f4675b854..798fd37996d88ae246fbf04080b2719c6fd63026 100644 GIT binary patch delta 391 zcmZoMXfc=|#>B!ku~2NHo}wTx0|Nsi1A_oVPP$=ma(-^XW=H1L%=I8)76v_rbcRfZ z5||WFjDdmw)hA@R+p6F!wdix2v-;Y delta 107 zcmZoMXfc=|#>B)qF;Q%yo}wr-0|Nsi1A_nqgDyicLkUAFLjgna#>C}}jLef;SR5zI zva(P9$FhvW(9%#x!Pv-n@)}nA%_1DaEE5YhZ)WG<=KvbDS&-v9^JIPzM-HH2Ak$bj JM~JLp1^@$l7rX!f diff --git a/src/.DS_Store b/src/.DS_Store index 1293aeeca41e2e4c0a27f6f8a4694dfabbd83ac6..69990c892eb5feb421b2778734872dcd2d91448e 100644 GIT binary patch delta 465 zcmZp1XmOa}FDlN!z`)4BAi%(o$dCub=?tk1MH>sJu}^H^-OSFx!l4RMA;93sPymF! z$f_9h7>XIn88R8t7)mA^2+F%FGdMG30QDy`WHaP5lroes1OU}nGUNiq@_@WBpxRWR z4rib&h+hPxbAS+NBZ^sBqVkjZ1p+pA3hFV|voZJqwUq%C6*FYyq#Fh&=jRpxoy5Sv zub>JfQRH*;U0jlK@{@q#93Ed*TzqoX<2*FgFyhoUial>SO5zWb8gaerw zmr6_)5Yd=iAi~4Z)@$BzM)tTPSYV9^4?9#~@_rFBCdLPozl&sT?i8(Kn%KaxnO))= M%jCNv5~$*=057t6=l}o! delta 462 zcmZp1XmOa}FDk~sz`)4BAi%(o!;s1l48%nYWg82pu}^H^-OSFx!oesud6PhJJs(g$ zk)f0!k0F^MgF%UQ@8Mp%zaz5RljBMe~*!g9&!C8P)^Mp11jz zfFMMMIb z8Ma7HHW1O6JVAtq!+Y`KB;&cq9Kix-M0nVt0+a8Hm@zSYm@F=u#mT}Dz>v?7!caVU Znt=SqvO1>C>=NHtCd-PZpi5OV0RXl)cgFw# 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: + 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" : "MIIGDTCCBPWgAwIBAgIQU32ojqOHNvBweXiqcRCCFDANBgkqhkiG9w0BAQsFADB1MUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTELMAkGA1UECwwCRzMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTI2MDExOTA3NDAwMFoXDTI3MDExOTA3Mzk1OVowgcExGjAYBgoJkiaJk/IsZAEBDAo4OTJINkgzNlM5MVAwTgYDVQQDDEdBcHBsZSBEaXN0cmlidXRpb246IFByb3ZpZGVudGlhbCBQbGF0Zm9ybXMgUHJpdmF0ZSBMaW1pdGVkICg4OTJINkgzNlM5KTETMBEGA1UECwwKODkySDZIMzZTOTEvMC0GA1UECgwmUHJvdmlkZW50aWFsIFBsYXRmb3JtcyBQcml2YXRlIExpbWl0ZWQxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp26icScM3LfHjK3rXwZBtv5Zz9z5slsINcRuOwVadoJHDuOr8JC+uXQXsE6kLlgLwXZ2mmfAk7UgyrqgomHpnJHulHGzY4B2kNoXuqYo4q4LhPpXpLaARJPWhEQxMz0DmcDbgQPVlLC2ZE2PIFmX1oSfIJjT3S42aMBTkYH10LyShoKaQc4nQgKbwRXYTaD8Kzh+gnMz/Owh2DXbFw8/B8TQxK4tNNf6L5EN+S7HWi6pZKNLCs5jddsnB6EKlE3ae6Ibg1qTIptm6PUuVDT1C94gtEBJreqmGsWOcjcKFNEYWpozX/8/cG2gf+M3tVqW4PdZ64D/AYHOuMDDblflOwIDAQABo4ICSjCCAkYwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQJ/sAVkPmvZAqSErkmKGMMl+ynsjBwBggrBgEFBQcBAQRkMGIwLQYIKwYBBQUHMAKGIWh0dHA6Ly9jZXJ0cy5hcHBsZS5jb20vd3dkcmczLmRlcjAxBggrBgEFBQcwAYYlaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyZzMxMTCCAR4GA1UdIASCARUwggERMIIBDQYJKoZIhvdjZAUBMIH/MIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMDcGCCsGAQUFBwIBFitodHRwczovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQOhk7OftT00jpbQ9+w865qg6NGXjAOBgNVHQ8BAf8EBAMCB4AwEwYKKoZIhvdjZAYBBwEB/wQCBQAwEAYKKoZIhvdjZAYBIAQCBQAwEwYKKoZIhvdjZAYBBAEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEBANL8ksDHKNP7GHJ9qGME8PeY+ZuW2c6VVnAcvRLEjbIe8Pec/KiY2EsJgexnslEb3LObv0K2esa4k+8PtI12WEnmWdXGnSJ3KNJyYZxeMHHJKKgi2YEXXbKMivAkG+ztG1AXI5sP3oyKLl9bEamPk64FY3sqXM+sQ/+p2ULlHZEDXeVWguuZuVMRPWPt4iZOpjYelNKmkS3DeRdOeNgwOZnch9EcbFj/0AuPiAaxVki4TA8l0LM1VAetl1D4olfvDmsSqwfGiU7+73ejjVixHzXlKkfPLkevFMnxxRRmh/89CZHDWJbJaO2/7AevBOiBINAz+7P+amrsiH0Cu12CvWE=", + "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 82dac0a8d3b93d72e04aab3cc6208b165cc059f1..9f670509ed1d1a04247179d1f86f43d4e0421bbd 100644 GIT binary patch delta 31 ncmZoMXfc@J&&abeU^g=(&tx8!_nW<0_b^Rt2-wWd@s}R}rBn)| delta 65 zcmZoMXfc@J&&azmU^g=(?_?g9_p%ZU?hN@rn9h*HkjfAY#6=8c44DkcK$h<0KP*a2 Rj6XNOVL8pTnVsV=KL9pV5;On+ 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 fc87c19f395e0e9593065a569f071d341d9e9ba4..52b0bef6cb59611f58ea18b837c285ab707ea20d 100644 GIT binary patch delta 36 scmZoMXfc@J&&a$nU^gQp^W*>~jm;)Zu8f=aGkdU1Y;fDm&heKY0LxzsF8}}l delta 89 zcmZoMXfc@J&&aYdU^gQp%j5tijm;)Zu8iiw3_c8r45bWt49N@`44yzTAIR2Y$YjU` nil;NAG86-GiDyoJa#Buy5(5K+00RS~?B*=yaF)&N9Dn%%tfUl^ 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) } }