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
AVPlayerQualityTestso 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_traceandgeolocation_traceto 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
AVPlayerinstances, 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.
AVPlayerQualityTestfor video streaming quality measurements with AVPlayer, scored with ITU-T Rec. P.1203WebQualityTestfor web page loading measurements withWKWebView, 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