Pulse 5.0
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
PulseProxymodule 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
URLSessionProtocolandURLSessionProxyas 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.isAutomaticConnectionEnabledproperty to allow automatic connection to Pulse apps - Add and document the new public
MockingURLProtocolused to enable network debugging features of Pulse apps. It is registered automatically with the newURLSessionProxy - Add
@MainActorto a few main-thread confined types likeRemoteLogger - Add new
UserSettingsproperties:isRemoteLoggingHiddenandallowedShareStoreOutputs, - Increase the default
LoggerStoresize limit from 128 MB to 256 MB and response body size limit from 5 MB to 8 MB - Add support for changing
LoggerStore.shared.configurationto make it easier to configure the default store NetworkLogger.sharedandLoggerStore.sharedcan now be both replaced with your custom instances and in any order with any other operations.- Update
RemoteLogger.Connectionto perform work on the background queue so that Pulse now runs almost no code on the main queue - Make
LoggerStore.infoan async method - Fix export of PDF in dark mode (#288), thanks to @ilyalehchylin
LoggerStore/exportno longer returnsLoggerStore.Info- Add
.createand.sweepoptions to the defaultLoggerStoreinit` - 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