diff --git a/Code/Conviva/Source/Base/Events/ConvivaHandlers/AdHandler.swift b/Code/Conviva/Source/Base/Events/ConvivaHandlers/AdHandler.swift index 7b82d2d1..e43f00f9 100644 --- a/Code/Conviva/Source/Base/Events/ConvivaHandlers/AdHandler.swift +++ b/Code/Conviva/Source/Base/Events/ConvivaHandlers/AdHandler.swift @@ -223,7 +223,7 @@ extension Ad { result["c3.ad.firstCreativeId"] = nonEmpty(googleImaAd?.wrapperCreativeIds.first) ?? nonEmpty(googleImaAd?.creativeId) ?? Utilities.defaultStringValue result["c3.ad.firstAdSystem"] = nonEmpty(googleImaAd?.wrapperAdSystems.first) ?? nonEmpty(googleImaAd?.adSystem) ?? Utilities.defaultStringValue result["c3.ad.adStitcher"] = Utilities.defaultStringValue - result["c3.ad.position"] = self.adBreak.calculateCurrentAdBreakPosition() + result["c3.ad.position"] = self.adBreak?.calculateCurrentAdBreakPosition() ?? Utilities.defaultStringValue // linearAd specific if self.type == THEOplayerSDK.AdType.linear, let duration = self.duration { result[CIS_SSDK_METADATA_IS_LIVE] = false diff --git a/Code/Conviva/Source/Base/Events/Observers/AdEventForwarder.swift b/Code/Conviva/Source/Base/Events/Observers/AdEventForwarder.swift index 77974e84..06452424 100644 --- a/Code/Conviva/Source/Base/Events/Observers/AdEventForwarder.swift +++ b/Code/Conviva/Source/Base/Events/Observers/AdEventForwarder.swift @@ -27,8 +27,8 @@ struct AdEventForwarder { player.addRemovableEventListener(type: PlayerEventTypes.PLAYING, listener: filter.conditionalSender(handler.adPlaying)), player.addRemovableEventListener(type: PlayerEventTypes.TIME_UPDATE) { filter.conditionalSender(handler.adTimeUpdate)($0.currentTimeInMilliseconds) - filter.conditionalSender(handler.adRenderedFramerateUpdate)(NSNumber(value: Int(player.playerMetrics.renderedFramerate.rounded()))) - filter.conditionalSender(handler.adDroppedFramesUpdate)(NSNumber(value: player.playerMetrics.droppedVideoFrames)) + filter.conditionalSender(handler.adRenderedFramerateUpdate)(NSNumber(value: Int(player.metrics.renderedFramerate.rounded()))) + filter.conditionalSender(handler.adDroppedFramesUpdate)(NSNumber(value: player.metrics.droppedVideoFrames)) }, player.addRemovableEventListener(type: PlayerEventTypes.PAUSE, listener: filter.conditionalSender(handler.adPause)) ] diff --git a/Code/Conviva/Source/Base/Events/Observers/AppEventForwarder.swift b/Code/Conviva/Source/Base/Events/Observers/AppEventForwarder.swift index 197bc0d0..6acdd199 100644 --- a/Code/Conviva/Source/Base/Events/Observers/AppEventForwarder.swift +++ b/Code/Conviva/Source/Base/Events/Observers/AppEventForwarder.swift @@ -9,10 +9,6 @@ import THEOplayerConnectorUtilities fileprivate let willEnterForeground = UIApplication.willEnterForegroundNotification fileprivate let didEnterBackground = UIApplication.didEnterBackgroundNotification -// Xcode 15 (Swift 5.9) introduces (and only fires notification with) `AVPlayerItem.newAccessLogEntryNotification`, and deprecates `Notification.Name.AVPlayerItemNewAccessLogEntry` (doesn't fire notification anymore) -// Older Xcode and Swift versions only fire notification with `Notification.Name.AVPlayerItemNewAccessLogEntry` -// Both `AVPlayerItem.newAccessLogEntryNotification` and `Notification.Name.AVPlayerItemNewAccessLogEntry` are mapped to `Notification.Name("AVPlayerItemNewAccessLogEntry")`, hence we use that. -// Once we drop support for older versions (below Xcode 15 and Swift 5.9) we can switch from `Notification.Name("AVPlayerItemNewAccessLogEntry")` to `AVPlayerItem.newAccessLogEntryNotification`. class AppEventForwarder { private let center = NotificationCenter.default diff --git a/Code/Conviva/Source/Base/Events/Observers/PlayerEventForwarder.swift b/Code/Conviva/Source/Base/Events/Observers/PlayerEventForwarder.swift index 31cf64ba..f0a82a6e 100644 --- a/Code/Conviva/Source/Base/Events/Observers/PlayerEventForwarder.swift +++ b/Code/Conviva/Source/Base/Events/Observers/PlayerEventForwarder.swift @@ -45,8 +45,8 @@ class PlayerEventForwarder { player.addRemovableEventListener(type: PlayerEventTypes.TIME_UPDATE) { handler.timeUpdate( currentTimeInMilliseconds: $0.currentTimeInMilliseconds, - renderedFramerate: NSNumber(value: Int(player.playerMetrics.renderedFramerate.rounded())), - droppedFrames: NSNumber(value: player.playerMetrics.droppedVideoFrames) + renderedFramerate: NSNumber(value: Int(player.metrics.renderedFramerate.rounded())), + droppedFrames: NSNumber(value: player.metrics.droppedVideoFrames) ) }, player.addRemovableEventListener(type: PlayerEventTypes.SOURCE_CHANGE) { diff --git a/Code/Nielsen/Source/Events/NielsenReporter/AdEventReporter.swift b/Code/Nielsen/Source/Events/NielsenReporter/AdEventReporter.swift index fa56f811..b66af877 100644 --- a/Code/Nielsen/Source/Events/NielsenReporter/AdEventReporter.swift +++ b/Code/Nielsen/Source/Events/NielsenReporter/AdEventReporter.swift @@ -25,7 +25,7 @@ public class AdEventReporter: AdEventProcessor { nielsen.stop() nielsen.loadMetadata( [ - "type": ad.adBreak.nielsenType, + "type": ad.adBreak?.nielsenType, "assetid": ad.id ] ) diff --git a/Package.swift b/Package.swift index 1b1326e0..1722a6c1 100644 --- a/Package.swift +++ b/Package.swift @@ -22,7 +22,7 @@ let package = Package( ], dependencies: [ .package(name: "ConvivaSDK", url: "https://github.com/Conviva/conviva-ios-sdk-spm", .exactItem( "4.0.51")), - .package(name: "THEOplayerSDK", url: "https://github.com/THEOplayer/theoplayer-sdk-apple", from: "10.0.0"), + .package(name: "THEOplayerSDK", url: "https://github.com/THEOplayer/theoplayer-sdk-apple", from: "11.0.0"), .package(name: "NielsenAppApi", url: "https://github.com/NielsenDigitalSDK/nielsenappsdk-ios-dynamic-spm-global", from: "9.0.0"), .package(name: "Swifter", url: "https://github.com/httpswift/swifter.git", .exactItem("1.5.0")), .package(name: "SwiftSubtitles", url: "https://github.com/dagronf/SwiftSubtitles.git", .exactItem("0.9.1")), diff --git a/THEOplayer-Connector-Comscore.podspec b/THEOplayer-Connector-Comscore.podspec index 530506e7..ec4b5298 100644 --- a/THEOplayer-Connector-Comscore.podspec +++ b/THEOplayer-Connector-Comscore.podspec @@ -19,6 +19,6 @@ Pod::Spec.new do |s| s.static_framework = true s.swift_versions = ['5.3', '5.4', '5.5', '5.6', '5.7'] - s.dependency 'THEOplayerSDK-core', "~> 10" + s.dependency 'THEOplayerSDK-core', "~> 11" s.dependency 'ComScore', '~> 6.10.0' end diff --git a/THEOplayer-Connector-Conviva.podspec b/THEOplayer-Connector-Conviva.podspec index 9e697bff..ab9a08ef 100644 --- a/THEOplayer-Connector-Conviva.podspec +++ b/THEOplayer-Connector-Conviva.podspec @@ -22,7 +22,7 @@ Pod::Spec.new do |s| s.subspec 'Base' do |base| base.source_files = 'Code/Conviva/Source/Base/**/*' base.dependency 'ConvivaSDK', '4.2.4' - base.dependency 'THEOplayerSDK-core', "~> 10.2" + base.dependency 'THEOplayerSDK-core', "~> 11" base.dependency 'THEOplayer-Connector-Utilities', "~> " + theoplayer_connector_major_minor_version, ">= " + theoplayer_connector_version end @@ -30,7 +30,7 @@ Pod::Spec.new do |s| s.subspec 'THEOlive' do |live| live.source_files = 'Code/Conviva/Source/THEOlive/**/*' live.dependency "#{s.name}/Base" - live.dependency 'THEOplayer-Integration-THEOlive', "~> 10.2" + live.dependency 'THEOplayer-Integration-THEOlive', "~> 11" end # Default diff --git a/THEOplayer-Connector-Nielsen.podspec b/THEOplayer-Connector-Nielsen.podspec index 635e3290..34bcd288 100644 --- a/THEOplayer-Connector-Nielsen.podspec +++ b/THEOplayer-Connector-Nielsen.podspec @@ -20,6 +20,6 @@ Pod::Spec.new do |s| s.static_framework = true s.swift_versions = ['5.3', '5.4', '5.5', '5.6', '5.7'] s.dependency 'NielsenAppSDK-XC', "~> 10" - s.dependency 'THEOplayerSDK-core', "~> 10" + s.dependency 'THEOplayerSDK-core', "~> 11" s.dependency 'THEOplayer-Connector-Utilities', "~> " + theoplayer_connector_major_minor_version, ">= " + theoplayer_connector_version end diff --git a/THEOplayer-Connector-SideloadedSubtitle.podspec b/THEOplayer-Connector-SideloadedSubtitle.podspec index 06daa043..8b7dd173 100644 --- a/THEOplayer-Connector-SideloadedSubtitle.podspec +++ b/THEOplayer-Connector-SideloadedSubtitle.podspec @@ -19,7 +19,7 @@ Pod::Spec.new do |s| s.static_framework = true s.swift_versions = ['5.3', '5.4', '5.5', '5.6', '5.7'] - s.dependency 'THEOplayerSDK-core', "~> 10.7" + s.dependency 'THEOplayerSDK-core', "~> 11" s.dependency 'SwiftSubtitles', '0.9.1' s.dependency 'Swifter', '1.5.0' end diff --git a/THEOplayer-Connector-Uplynk.podspec b/THEOplayer-Connector-Uplynk.podspec index dc7ba9c8..8ca1af2e 100644 --- a/THEOplayer-Connector-Uplynk.podspec +++ b/THEOplayer-Connector-Uplynk.podspec @@ -18,5 +18,5 @@ Pod::Spec.new do |s| s.source_files = 'Code/Uplynk/Source/**/*' s.static_framework = true - s.dependency 'THEOplayerSDK-core', "~> 10" + s.dependency 'THEOplayerSDK-core', "~> 11" end diff --git a/THEOplayer-Connector-Utilities.podspec b/THEOplayer-Connector-Utilities.podspec index 46544ac0..120643bf 100644 --- a/THEOplayer-Connector-Utilities.podspec +++ b/THEOplayer-Connector-Utilities.podspec @@ -19,5 +19,5 @@ Pod::Spec.new do |s| s.static_framework = true s.swift_versions = ['5.3', '5.4', '5.5', '5.6', '5.7'] - s.dependency 'THEOplayerSDK-core', "~> 10" + s.dependency 'THEOplayerSDK-core', "~> 11" end diff --git a/THEOplayer-Connector-Yospace.podspec b/THEOplayer-Connector-Yospace.podspec index 475f0cd0..11007816 100644 --- a/THEOplayer-Connector-Yospace.podspec +++ b/THEOplayer-Connector-Yospace.podspec @@ -19,5 +19,5 @@ Pod::Spec.new do |s| s.static_framework = true s.swift_versions = ['5.3', '5.4', '5.5', '5.6', '5.7'] - s.dependency 'THEOplayerSDK-core', "~> 10" + s.dependency 'THEOplayerSDK-core', "~> 11" end