iOS
Not available yet. TracePath does not publish an iOS library. There is no Swift package to add and no public repository to point Swift Package Manager at. This page describes the planned integration. Email [email protected] to hear when it ships.
The planned iOS library will capture errors and crashes from native Swift apps. It is deliberately narrow in scope — errors and crashes only, no metrics, no transactions, no session replay — and reports to the same TracePath project structure as every other platform.
Planned requirements
- iOS 13.0+
- Swift 5.9+ / Xcode 15+
- No third-party dependencies
What it will capture
Starting the SDK as early as possible — from a SwiftUI App.init, or from
application(_:didFinishLaunchingWithOptions:) in UIKit — installs the handlers before any
code that might crash:
- Uncaught
NSExceptions: Objective-C and UIKit exceptions that escape to the top of the stack. - Fatal signals: Swift runtime traps such as force-unwrapping
nil, array out-of-bounds access,fatalError()and integer overflow, surfacing asSIGTRAP,SIGILL,SIGABRTorSIGSEGV.
A hard crash takes the process down before anything can be uploaded, so reports are persisted
to disk and sent on the next launch. Explicit capture calls will cover Swift Error
values, NSError, custom messages and a forced flush with a timeout.
One thing worth knowing before you test it: hard-crash capture does nothing while the Xcode debugger is attached. Crashes are intercepted with POSIX signal handlers, and lldb intercepts the signal first, so the SDK's handler never runs. Verifying it means installing once from Xcode, stopping the debugger, launching from the home screen, triggering the crash, then relaunching to watch the report upload. A caught error uploads immediately and works with the debugger attached, so it is the faster wiring check.
dSYM upload for release builds
A release build ships stripped, so crash traces arrive as bare image offsets with no function
names or line numbers. Resolving them needs the build's .dSYM uploaded to TracePath, which
symbolicates server-side; there is no client-side parsing.
The upload endpoint already exists and takes plain multipart HTTP with an upload token, the same token used for JavaScript source maps — see iOS symbolication for the contract, including the raw HTTP path for CI without Xcode. What is missing is the client end: the SDK that produces the crash reports those symbols would resolve.
Note that the upload token is not the runtime token an app would carry in its connection string. It is generated separately on the project's Connection page in the dashboard.
What to do today
The backend your app talks to can be instrumented now with OpenTelemetry — a failing screen is usually a failing endpoint, and the endpoint side is fully supported. Synthetic monitors can watch your API from the outside with no code at all.
For cross-platform apps, Flutter and React Native are planned as well; all of them speak the same wire format, so a single TracePath project structure covers every platform.