Changelog
Complete record of API additions, changes, deprecations, and removals for the Zeta iOS SDK (ZetaKit).
This page is for iOS developers who need a precise record of every API-level change across SDK releases. For upgrade instructions, see the migration guide in the public distribution repository.
On this page
1.0.0 (June 16, 2026)
Added
- App Inbox —
ZetaClient.shared.inboxnow exposesZTAppInboxManagable, providing a full message lifecycle API: fetch messages, query read/unread counts, mark messages as read or deleted, and clear all messages. See App Inbox. ZTLogger— new static type that centralises all logging configuration and consumer log calls. No instance is needed.ZTLogPrivacyenum with.private(default) and.publiccases, controlling whether message content is visible in Console.app and system diagnostic captures.ZTLogger.setLogLevel(_:)— configure the minimum log level at runtime, before or afterinitialize(config:).ZTLogger.setLogPrivacy(_:)— global privacy override for SDK-internal diagnostic messages.ZTLogger.log(_:level:privacy:category:errorCode:)— structured consumer logging with optional level, per-call privacy, Console.app category, and a short error-triage code.- Environment-aware default log level:
.errorin debug builds,.nonein production/release builds. - Swift 6 compatibility — SDK binaries are built with the Swift 6 toolchain (
BUILD_LIBRARY_FOR_DISTRIBUTION).ZetaNotificationServiceis fully migrated to Swift 6 language mode;ZetaCoreuses Swift 5 language mode with Swift 6 concurrency features enabled as warnings. Both modules work in Swift 5.x and Swift 6 consumer projects. Minimum toolchain: Xcode 15.3+ / Swift 5.10.
Changed
- Breaking —
ZTLocation.isForegroundtype changed fromBool?toBool(defaults tofalse). Remove anyif let fg = location.isForegroundoptional binding and read the property directly. Objective-C consumers now have full access to this property, which was previously invisible to Obj-C. - Breaking —
ZTConfiginitializers no longer accept anisLoggingEnabled: Boolparameter. Remove the argument from allZTConfig(...)call sites and useZTLogger.setLogLevel(_:)to control logging verbosity. - Breaking — All logging configuration (
setLogLevel,setLogPrivacy) and the consumerlogmethod have moved fromZetaClienttoZTLogger.
Deprecated
ZetaClient.shared.log(log:)— still compiles with a deprecation warning. Migrate call sites toZTLogger.log(_:level:privacy:category:errorCode:).
Removed
ZTLocation.init(latitude:longitude:isForeground:Bool?)— useinit(latitude:longitude:isForeground:Bool)orinit(latitude:longitude:)which defaultsisForegroundtofalse.ZTConfig.isLoggingEnabledstored property.ZTLoggableprotocol.ZTLogHandlerprotocol.ZTDefaultLoggerclass.ZTSystemConsoleLoggerclass.ZetaClient.setLogLevel(_:)— replaced byZTLogger.setLogLevel(_:).ZetaClient.log(log:level:)— replaced byZTLogger.log(_:level:privacy:category:errorCode:).ZTLogLevel.criticalandZTLogLevel.alertcases — use.errorfor high-severity messages.
Upgrade guide: Migration guide / Upgrading to 1.0.0
0.2.0 (January 22, 2026)
Added
- In-app email collection —
inAppMessageFormDataproperty onZTInAppMessageso delegates can read the email address submitted through an in-app form. - Unique client IDs —
setUniqueClientId(value:forKey:)onZTUserManagableto set client-defined unique identifiers. NewemailIdproperty onZTUserfor email identification.
Changed
- SDK version updated from
0.1.8to0.2.0.
