Announcement
Pulse macOS and iOS apps are now available on the App Store. Learn more in the announcement.
Requirements
- Swift 5.10 (Xcode 15.3)
- iOS 15, tvOS 15, macOS 12, watchOS 8, visionOS 1
Changes
Pulse SDK 5.0 greatly simplifies the integration experience and introduces two new ways for capturing network traffic.
- Option 1 (Quickest) Add a new
PulseProxy
module for automatic capturing of all network traffic from the app with a single line – the quickest way to try Pulse
import PulseProxy
#if DEBUG
NetworkLogger.enableProxy()
#endif
- Option 2 (Recommended) Add new
URLSessionProtocol
andURLSessionProxy
as a new recommended way to track network traffic and enable other Pulse features like response mocking
#if DEBUG
let session: URLSessionProtocol = URLSessionProxy(configuration: .default)
#else
let session: URLSessionProtocol = URLSession(configuration: .default)
#endif
- Learn more about the new network logging method in the fully rewritten Getting Started and Network Logging & Debugging guides
- Add compatibility with Swift 6 (not official until Xcode 16 RC ships)
- Reduce the size of the framework by nearly 15%
- Add
RemoteLogger.isAutomaticConnectionEnabled
property to allow automatic connection to Pulse apps - Add and document the new public
MockingURLProtocol
used to enable network debugging features of Pulse apps. It is registered automatically with the newURLSessionProxy
- Add
@MainActor
to a few main-thread confined types likeRemoteLogger
- Add new
UserSettings
properties:isRemoteLoggingHidden
andallowedShareStoreOutputs
, - Increase the default
LoggerStore
size limit from 128 MB to 256 MB and response body size limit from 5 MB to 8 MB - Add support for changing
LoggerStore.shared.configuration
to make it easier to configure the default store NetworkLogger.shared
andLoggerStore.shared
can now be both replaced with your custom instances and in any order with any other operations.- Update
RemoteLogger.Connection
to perform work on the background queue so that Pulse now runs almost no code on the main queue - Make
LoggerStore.info
an async method - Fix export of PDF in dark mode (#288), thanks to @ilyalehchylin
LoggerStore/export
no longer returnsLoggerStore.Info
- Add
.create
and.sweep
options to the defaultLoggerStore
init` - Remove the console for MacOS as it is no longer feasible to maintain the reusable code between Pulse SDK and Pulse standalone app for Mac. If you are using the console for macOS, please consider using the standalone Pulse app.
- Remove some of the text-based search filters, which wasn’t the right UX for a phone. In upcoming versions, it will be replaced with convenient controls.
- Remove deprecated
LoggerStore.copy(to:)
andLoggerStore.pins
- Remove support for exporting store as a package (
DocumentType.package
) - Bug fixes and performance improvements