Skip to content

Surfmeter Mobile Quality SDK (iOS) Changelog

This is the changelog for the Surfmeter Mobile Quality SDK for iOS. For the Android version, see the Android changelog.

1.4.1 (2026-09-11)

  • Remove support for non-iOS platforms, as the SDK now exclusively targets iOS 15 and above.
  • Improve how the SDK handles test failures, ensuring consistent reporting behavior across platforms.

1.4.0 (2026-09-10)

  • Add opt-in background playback for AVPlayerQualityTest so playback can continue after the host app enters the background, including SDK-owned, attached, and caller-owned AVPlayer instances.
  • Validate the host app's background-audio capability and external-player policy before starting a background-enabled test.
  • Keep final on-device analysis, report storage, and result delivery active for a limited time after playback ends in the background.
  • Use logged codec and bitrate fallbacks when AVFoundation omits or reports unsupported track metadata, preventing an empty successful result.

1.3.0 (2026-09-09)

  • Add connection_detail_trace and geolocation_trace to every test result. The SDK records changes to connection details and precise location updates while the test runs.
  • Add Wi-Fi SSID and BSSID collection when the host app has the Access WiFi Information capability and iOS provides the values.
  • Keep location collection optional: denied, unavailable, or approximate-only location produces an empty trace and does not fail the test.
  • Support external AVPlayer instances, allowing analytics and playback observers to be attached to caller-owned players.
  • Improve web vitals timing, ensuring more accurate reporting of performance metrics.
  • Report the result of a manual queue upload so apps can show successful sends and upload errors.

1.2.0 (2026-09-07)

  • Add YouTube video quality measurements, leveraging existing content scripts and analytics.
  • Add Netflix video quality measurements, including support for public playback (trailers) and muted playback.
  • Enhance YouTube video quality measurements with configurable 1080p and 4K display surfaces.
  • Automatically clear shared WebKit browsing data before each YouTube test run by default.
  • Improve YouTube video quality measurement to better handle situations where the displayed resolution temporarily differs from the selected resolution. A short test run no longer fails to produce a measurement when the player selects a higher resolution that playback does not reach before the run ends.
  • Provide more detailed error messages when YouTube rendition data is incomplete, helping diagnose video quality issues.

1.1.2 (2026-08-28)

  • Recover missing navigation timings in some occurrences of web quality tests
  • Default the video QoE model to P.1204.1

v1.1.1 (2026-08-24)

  • Fix a crash during local KPI and statistics processing when using the XCFramework distribution by including the required resource bundle

v1.1.0 (2026-08-13)

First public release of the Surfmeter Mobile Quality SDK for iOS.

  • AVPlayerQualityTest for video streaming quality measurements with AVPlayer, scored with ITU-T Rec. P.1203
  • WebQualityTest for web page loading measurements with WKWebView, using Web Vitals and navigation timing
  • Statistics are computed on the device, so a result is produced without waiting for a server
  • Client registration and authentication against the Surfmeter server through Registry, required before any test can be built
  • Licensing is enforced on the device: a registration key can restrict which measurement types and subjects it allows, a device stops measuring once the window the server granted it runs out, and a device the server refuses — disabled in the Surfmeter Dashboard, or with credentials it no longer recognises — has its registration cleared and stops measuring
  • Measurement sync: every finished test queues and uploads its own result, with retries and offline persistence, and nothing to switch on beyond registering
  • Reports use the same format as the Android SDK, so both platforms can be read the same way
  • Distributed as an XCFramework, installable through Swift Package Manager
  • API documentation generated with DocC, shipped with every release