fix(ios): resolve compilation errors and enable successful build

Fixed critical compilation errors preventing iOS plugin build:
- Updated logger API calls from logger.debug(TAG, msg) to logger.log(.debug, msg)
  across all iOS plugin files to match DailyNotificationLogger interface
- Fixed async/await concurrency in makeConditionalRequest using semaphore pattern
- Fixed NotificationContent immutability by creating new instances instead of mutation
- Changed private access control to internal for extension-accessible methods
- Added iOS 15.0+ availability checks for interruptionLevel property
- Fixed static member references using Self.MEMBER_NAME syntax
- Added missing .scheduling case to exhaustive switch statement
- Fixed variable initialization in retry state closures

Added DailyNotificationStorage.swift implementation matching Android pattern.

Updated build scripts with improved error reporting and full log visibility.

iOS plugin now compiles successfully. All build errors resolved.
This commit is contained in:
Matthew Raymer
2025-11-04 22:22:02 -08:00
parent 4be87acc14
commit 8ded555a21
17 changed files with 2000 additions and 196 deletions

View File

@@ -292,11 +292,17 @@ class DailyNotificationBackgroundTaskManager {
// Parse new content
let newContent = try JSONSerialization.jsonObject(with: data) as? [String: Any]
// Update notification with new content
var updatedNotification = notification
updatedNotification.payload = newContent
updatedNotification.fetchedAt = Date().timeIntervalSince1970 * 1000
updatedNotification.etag = response.allHeaderFields["ETag"] as? String
// Create new notification instance with updated content
let updatedNotification = NotificationContent(
id: notification.id,
title: notification.title,
body: notification.body,
scheduledTime: notification.scheduledTime,
fetchedAt: Date().timeIntervalSince1970 * 1000,
url: notification.url,
payload: newContent,
etag: response.allHeaderFields["ETag"] as? String
)
// Check TTL before storing
if ttlEnforcer.validateBeforeArming(updatedNotification) {
@@ -335,8 +341,16 @@ class DailyNotificationBackgroundTaskManager {
// Update ETag if provided
if let etag = response.allHeaderFields["ETag"] as? String {
var updatedNotification = notification
updatedNotification.etag = etag
let updatedNotification = NotificationContent(
id: notification.id,
title: notification.title,
body: notification.body,
scheduledTime: notification.scheduledTime,
fetchedAt: notification.fetchedAt,
url: notification.url,
payload: notification.payload,
etag: etag
)
storeUpdatedContent(updatedNotification) { success in
completion(success)
}