fix(ios): resolve build errors and add missing configureNativeFetcher method
Fixed Swift compilation errors preventing iOS build: - Added explicit self capture [self] in closures in DailyNotificationReactivationManager - Removed invalid BGTaskScheduler.shared.registeredTaskIdentifiers API call - Fixed initialization order in DailyNotificationModel (verifyEntities after container init) Added missing configureNativeFetcher method to iOS plugin: - Implemented method matching Android functionality - Stores configuration in UserDefaults for persistence - Registered method in pluginMethods array - Supports both jwtToken and jwtSecret parameters for compatibility This resolves the runtime error "configureNativeFetcher is not a function" that was preventing the test app from configuring the plugin.
This commit is contained in:
@@ -114,6 +114,114 @@ extension History: Identifiable {
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NotificationContent Entity
|
||||
@objc(NotificationContentEntity)
|
||||
public class NotificationContentEntity: NSManagedObject {
|
||||
|
||||
}
|
||||
|
||||
extension NotificationContentEntity {
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<NotificationContentEntity> {
|
||||
return NSFetchRequest<NotificationContentEntity>(entityName: "NotificationContent")
|
||||
}
|
||||
|
||||
@NSManaged public var id: String?
|
||||
@NSManaged public var pluginVersion: String?
|
||||
@NSManaged public var timesafariDid: String?
|
||||
@NSManaged public var notificationType: String?
|
||||
@NSManaged public var title: String?
|
||||
@NSManaged public var body: String?
|
||||
@NSManaged public var scheduledTime: Date?
|
||||
@NSManaged public var timezone: String?
|
||||
@NSManaged public var priority: Int32
|
||||
@NSManaged public var vibrationEnabled: Bool
|
||||
@NSManaged public var soundEnabled: Bool
|
||||
@NSManaged public var mediaUrl: String?
|
||||
@NSManaged public var encryptedContent: String?
|
||||
@NSManaged public var encryptionKeyId: String?
|
||||
@NSManaged public var createdAt: Date?
|
||||
@NSManaged public var updatedAt: Date?
|
||||
@NSManaged public var ttlSeconds: Int64
|
||||
@NSManaged public var deliveryStatus: String?
|
||||
@NSManaged public var deliveryAttempts: Int32
|
||||
@NSManaged public var lastDeliveryAttempt: Date?
|
||||
@NSManaged public var userInteractionCount: Int32
|
||||
@NSManaged public var lastUserInteraction: Date?
|
||||
@NSManaged public var metadata: String?
|
||||
}
|
||||
|
||||
extension NotificationContentEntity: Identifiable {
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NotificationDelivery Entity
|
||||
@objc(NotificationDelivery)
|
||||
public class NotificationDelivery: NSManagedObject {
|
||||
|
||||
}
|
||||
|
||||
extension NotificationDelivery {
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<NotificationDelivery> {
|
||||
return NSFetchRequest<NotificationDelivery>(entityName: "NotificationDelivery")
|
||||
}
|
||||
|
||||
@NSManaged public var id: String?
|
||||
@NSManaged public var notificationId: String?
|
||||
@NSManaged public var notificationContent: NotificationContentEntity?
|
||||
@NSManaged public var timesafariDid: String?
|
||||
@NSManaged public var deliveryTimestamp: Date?
|
||||
@NSManaged public var deliveryStatus: String?
|
||||
@NSManaged public var deliveryMethod: String?
|
||||
@NSManaged public var deliveryAttemptNumber: Int32
|
||||
@NSManaged public var deliveryDurationMs: Int64
|
||||
@NSManaged public var userInteractionType: String?
|
||||
@NSManaged public var userInteractionTimestamp: Date?
|
||||
@NSManaged public var userInteractionDurationMs: Int64
|
||||
@NSManaged public var errorCode: String?
|
||||
@NSManaged public var errorMessage: String?
|
||||
@NSManaged public var deviceInfo: String?
|
||||
@NSManaged public var networkInfo: String?
|
||||
@NSManaged public var batteryLevel: Int32
|
||||
@NSManaged public var dozeModeActive: Bool
|
||||
@NSManaged public var exactAlarmPermission: Bool
|
||||
@NSManaged public var notificationPermission: Bool
|
||||
@NSManaged public var metadata: String?
|
||||
}
|
||||
|
||||
extension NotificationDelivery: Identifiable {
|
||||
|
||||
}
|
||||
|
||||
// MARK: - NotificationConfig Entity
|
||||
@objc(NotificationConfig)
|
||||
public class NotificationConfig: NSManagedObject {
|
||||
|
||||
}
|
||||
|
||||
extension NotificationConfig {
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<NotificationConfig> {
|
||||
return NSFetchRequest<NotificationConfig>(entityName: "NotificationConfig")
|
||||
}
|
||||
|
||||
@NSManaged public var id: String?
|
||||
@NSManaged public var timesafariDid: String?
|
||||
@NSManaged public var configType: String?
|
||||
@NSManaged public var configKey: String?
|
||||
@NSManaged public var configValue: String?
|
||||
@NSManaged public var configDataType: String?
|
||||
@NSManaged public var isEncrypted: Bool
|
||||
@NSManaged public var encryptionKeyId: String?
|
||||
@NSManaged public var createdAt: Date?
|
||||
@NSManaged public var updatedAt: Date?
|
||||
@NSManaged public var ttlSeconds: Int64
|
||||
@NSManaged public var isActive: Bool
|
||||
@NSManaged public var metadata: String?
|
||||
}
|
||||
|
||||
extension NotificationConfig: Identifiable {
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Persistence Controller
|
||||
// Phase 2: CoreData integration for advanced features
|
||||
// All entities now available: ContentCache, Schedule, Callback, History,
|
||||
@@ -169,11 +277,13 @@ class PersistenceController {
|
||||
if let context = tempContainer?.viewContext {
|
||||
context.automaticallyMergesChangesFromParent = true
|
||||
context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
|
||||
|
||||
// Verify all entities are available
|
||||
verifyEntities(in: context)
|
||||
}
|
||||
self.container = tempContainer
|
||||
|
||||
// Verify all entities are available (after container is initialized)
|
||||
if let context = tempContainer?.viewContext {
|
||||
verifyEntities(in: context)
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
print("DNP-PLUGIN: Failed to initialize CoreData container: \(error.localizedDescription)")
|
||||
|
||||
Reference in New Issue
Block a user