diff --git a/ios/AlerteSecours.xcodeproj/project.pbxproj b/ios/AlerteSecours.xcodeproj/project.pbxproj index 4910c8f..89b0689 100644 --- a/ios/AlerteSecours.xcodeproj/project.pbxproj +++ b/ios/AlerteSecours.xcodeproj/project.pbxproj @@ -184,7 +184,8 @@ F71413BB66E2439C85473BEA /* Fix Xcode 15 Bug */, 496EE3C8D7E445ABA85A39A6 /* Fix Xcode 15 Bug */, F7ADCC68A8E44BA69FCA849E /* Fix Xcode 15 Bug */, - 3F0C28FA929447E59D14DFED /* Remove signature files (Xcode workaround) */, + B1AB92A327A24FB294681EDD /* Fix Xcode 15 Bug */, + F65632CE7D4A409F817EEC81 /* Remove signature files (Xcode workaround) */, ); buildRules = ( ); @@ -1029,6 +1030,40 @@ fi"; shellScript = " echo \"Remove signature files (Xcode workaround)\"; rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; + "; + }; + B1AB92A327A24FB294681EDD /* Fix Xcode 15 Bug */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + name = "Fix Xcode 15 Bug"; + inputPaths = ( + ); + outputPaths = ( + ); + shellPath = /bin/sh; + shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then + echo \"Remove signature files (Xcode 15 workaround)\" + find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm +fi"; + }; + F65632CE7D4A409F817EEC81 /* Remove signature files (Xcode workaround) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + name = "Remove signature files (Xcode workaround)"; + inputPaths = ( + ); + outputPaths = ( + ); + shellPath = /bin/sh; + shellScript = " + echo \"Remove signature files (Xcode workaround)\"; + rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; "; }; /* End PBXShellScriptBuildPhase section */ diff --git a/src/location/trackLocation.js b/src/location/trackLocation.js index 0b70aef..1328817 100644 --- a/src/location/trackLocation.js +++ b/src/location/trackLocation.js @@ -330,110 +330,11 @@ export default async function trackLocation() { code: error.code, }); } - - // Add a function to check for pending records - async function checkPendingRecords() { - try { - const count = await BackgroundGeolocation.getCount(); - locationLogger.debug("Pending location records", { count }); - - Sentry.addBreadcrumb({ - message: "Checking pending location records", - category: "geolocation", - level: "info", - data: { pendingCount: count }, - }); - - if (count > 0) { - locationLogger.info(`Found ${count} pending records, forcing sync`); - - await Sentry.startSpan( - { - name: "force-sync-pending-records", - op: "geolocation-sync", - }, - async (span) => { - try { - const { userToken } = getAuthState(); - const state = await BackgroundGeolocation.getState(); - if (userToken && state.enabled) { - const records = await BackgroundGeolocation.sync(); - locationLogger.debug("Forced sync result", { - recordsCount: records?.length || 0, - }); - - Sentry.addBreadcrumb({ - message: "Forced sync completed", - category: "geolocation", - level: "info", - data: { - recordsCount: records?.length || 0, - hadToken: true, - wasEnabled: true, - }, - }); - - span.setStatus({ code: SPAN_STATUS_OK, message: "ok" }); - } else { - Sentry.addBreadcrumb({ - message: "Forced sync skipped", - category: "geolocation", - level: "warning", - data: { - hasToken: !!userToken, - isEnabled: state.enabled, - }, - }); - span.setStatus({ code: SPAN_STATUS_OK, message: "skipped" }); - } - } catch (error) { - locationLogger.error("Forced sync failed", { - error: error, - stack: error.stack, - }); - - Sentry.captureException(error, { - tags: { - module: "track-location", - operation: "force-sync-pending", - }, - contexts: { - pendingRecords: { count }, - }, - }); - - span.setStatus({ - code: SPAN_STATUS_ERROR, - message: "internal_error", - }); - throw error; // Re-throw to ensure span captures the error - } - }, - ); - } - } catch (error) { - locationLogger.error("Failed to get pending records count", { - error: error.message, - }); - - Sentry.captureException(error, { - tags: { - module: "track-location", - operation: "check-pending-records", - }, - }); - } - } - const { userToken } = getAuthState(); locationLogger.debug("Setting up auth state subscription"); subscribeAuthState(({ userToken }) => userToken, handleAuth); locationLogger.debug("Performing initial auth handling"); handleAuth(userToken); - - // Check for pending records after a short delay to ensure everything is initialized - setTimeout(checkPendingRecords, 5000); - // Initialize emulator mode if previously enabled initEmulatorMode(); }