iOS Mobile SDK v26.3.0 March 18, 2026
Compatibility Overview
Component Version Minimum iOS Version 16.0 Minimum watchOS Version 9.0 Built Using Xcode 26.0.1 Swift Version 5.0 Swift Tools Version 5.10 Package Manager Swift Package Q2MobileApp 26.3.0 Q2DevApp 26.3.0
Q2MobileApp Dependencies
Library Version Firebase 11.5.0 Bugsnag 6.30.1 Pendo 3.9.1
Added
Q2ModuleInterfaces
Added typed JSON support through JSONValue.
Added typed method request support with MethodRequest and MethodRequestResponse.
Added ModuleDataSource.executeMethodRequest(_:) so modules can aggregate responses from method modules.
Added MethodModule.handleRequest(_:) for typed, async request handling.
Added MRDCCameraSelection and a new
ModuleDelegate.takeRemoteDepositPicture(_:cameraSelection:) overload for MRDC camera
selection.
Q2DevApp
Added scene delegate wiring required for the updated app lifecycle model.
Fixed
Q2UIComponents
Fixed an issue in Q2AmountTextField where initializing with a bound @Published
value could trigger infinite re-render loops.
Improved primary font resolution so regular-weight custom fonts can load correctly when
the base font name is already registered.
Q2DevApp
Firebase integration now exposes async push registration token fetching.
Updated
Q2ModuleInterfaces
Updated several public APIs to support typed JSON-backed data while preserving backward
compatibility through deprecated legacy properties and initializers.
Example:
moduleInvocationData.runtimeParamsData["server"]?.stringValue
AuthenticationModuleResponse now exposes typed userDataJSON.
ModuleInvocationData now exposes typed buildConfigData and runtimeParamsData.
WebServiceRequest and WebServiceResponse now expose typed bodyData and responseData.
Q2DevApp
Theme, localization backup, and app configuration files were updated to align with Q2MobileApp 26.3.0.
Behaviour Changes
Q2ModuleInterfaces
Method module support now includes aggregated typed request handling in addition to the
existing Tecton method invocation pattern.
Q2DevApp
Q2DevApp now requires a scene manifest entry in Info.plist and a local
Q2DevAppSceneDelegate subclass of Q2CoreSceneDelegate.
Deprecations
Q2ModuleInterfaces
Legacy untyped dictionary access remains available in several APIs, but typed
JSON-based properties and initializers are now preferred.
Migration Notes
Q2ModuleInterfaces
If your module or app consumes payloads using [String: Any] or [String: Any?],
migrate to the typed JSONValue-backed APIs where possible.
Q2DevApp
If your Q2DevApp fork does not already define UIApplicationSceneManifest, add the
scene configuration and include a Q2DevAppSceneDelegate class in the app target.