chore(ios): add pendingShareExists cold-start share diagnostics (temporary)

Extend ShareExtensionDiagnostics with pendingShareExists across
SharedImageUtility, definitions, and the web stub, and log cold-start
state (pending share + current route) in the iOS startup share check.
This commit is contained in:
Jose Olarte III
2026-06-25 18:37:04 +08:00
parent 4fc30562fb
commit 6f7be2e3b2
5 changed files with 58 additions and 28 deletions

View File

@@ -2,6 +2,13 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>org.timesafari.dailynotification.fetch</string>
<string>org.timesafari.dailynotification.notify</string>
<string>org.timesafari.dailynotification.content-fetch</string>
<string>org.timesafari.dailynotification.notification-delivery</string>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
@@ -18,6 +25,17 @@
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>app.timesafari</string>
<key>CFBundleURLSchemes</key>
<array>
<string>timesafari</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
@@ -26,6 +44,13 @@
<string>Time Safari allows you to take photos, and also scan QR codes from contacts.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Time Safari allows you to upload photos.</string>
<key>NSUserNotificationAlertStyle</key>
<string>alert</string>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>processing</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
@@ -47,30 +72,5 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>app.timesafari</string>
<key>CFBundleURLSchemes</key>
<array>
<string>timesafari</string>
</array>
</dict>
</array>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>org.timesafari.dailynotification.fetch</string>
<string>org.timesafari.dailynotification.notify</string>
<string>org.timesafari.dailynotification.content-fetch</string>
<string>org.timesafari.dailynotification.notification-delivery</string>
</array>
<key>NSUserNotificationAlertStyle</key>
<string>alert</string>
</dict>
</plist>

View File

@@ -108,7 +108,9 @@ public class SharedImageUtility {
"shareExtensionLastStart": NSNull(),
"sharedPhotoShareId": NSNull(),
"sharedPhotoFilePath": NSNull(),
"fileExists": false
"fileExists": false,
// TEMPORARY SHARE TARGET DIAGNOSTICS
"pendingShareExists": false
]
}
@@ -123,13 +125,23 @@ public class SharedImageUtility {
fileExists = false
}
print("[ShareTarget] getShareExtensionDiagnostics shareExtensionLastStart=\(shareExtensionLastStart ?? "nil") sharedPhotoShareId=\(shareId ?? "nil") sharedPhotoFilePath=\(filePath ?? "nil") fileExists=\(fileExists)")
// TEMPORARY SHARE TARGET DIAGNOSTICS
let pendingShareExists = (
shareExtensionLastStart != nil ||
shareId != nil ||
filePath != nil ||
fileExists == true
)
print("[ShareTarget] getShareExtensionDiagnostics shareExtensionLastStart=\(shareExtensionLastStart ?? "nil") sharedPhotoShareId=\(shareId ?? "nil") sharedPhotoFilePath=\(filePath ?? "nil") fileExists=\(fileExists) pendingShareExists=\(pendingShareExists)")
return [
"shareExtensionLastStart": shareExtensionLastStart ?? NSNull(),
"sharedPhotoShareId": shareId ?? NSNull(),
"sharedPhotoFilePath": filePath ?? NSNull(),
"fileExists": fileExists
"fileExists": fileExists,
// TEMPORARY SHARE TARGET DIAGNOSTICS
"pendingShareExists": pendingShareExists
]
}

View File

@@ -363,6 +363,20 @@ async function checkForSharedImageAndNavigate() {
if (Capacitor.getPlatform() === "ios") {
try {
const diagnostics = await SharedImage.getShareExtensionDiagnostics();
// TEMPORARY SHARE TARGET DIAGNOSTICS
console.info(
"[ShareTarget] Cold-start state",
JSON.stringify({
pendingShareExists: diagnostics.pendingShareExists,
shareExtensionLastStart: diagnostics.shareExtensionLastStart,
sharedPhotoShareId: diagnostics.sharedPhotoShareId,
sharedPhotoFilePath: diagnostics.sharedPhotoFilePath,
fileExists: diagnostics.fileExists,
currentRoute: router.currentRoute.value.fullPath,
appReady: true,
timestamp: new Date().toISOString(),
}),
);
logger.info(`[ShareTarget] Diagnostics ${JSON.stringify(diagnostics)}`);
} catch (diagnosticsError) {
logger.info(

View File

@@ -29,6 +29,8 @@ export class SharedImagePluginWeb
sharedPhotoShareId: null,
sharedPhotoFilePath: null,
fileExists: false,
// TEMPORARY SHARE TARGET DIAGNOSTICS
pendingShareExists: false,
};
}
}

View File

@@ -12,6 +12,8 @@ export interface ShareExtensionDiagnostics {
sharedPhotoShareId: string | null;
sharedPhotoFilePath: string | null;
fileExists: boolean;
// TEMPORARY SHARE TARGET DIAGNOSTICS
pendingShareExists: boolean;
}
export interface SharedImagePlugin {