A Swift library for generating and sharing diagnostics reports from iOS, iPadOS, and macOS apps to improve bug-fixing workflows.
Diagnostics is a Swift library that enables developers to generate comprehensive diagnostic reports from their iOS, iPadOS, and macOS applications. It collects app metadata, system logs, and custom data, allowing users to easily share these reports with support teams to streamline bug identification and resolution.
iOS, iPadOS, and macOS developers who need to integrate diagnostic reporting and logging into their apps for improved debugging and user support workflows.
Developers choose Diagnostics for its seamless integration with native Apple frameworks, extensible architecture for custom data and insights, and built-in privacy features to filter sensitive information, making it a robust tool for enhancing support efficiency.
Allow users to easily share Diagnostics with your support team to improve the flow of fixing bugs.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly attaches HTML reports to MFMailComposeViewController on iOS or NSSharingService on macOS, streamlining user support communication directly from the app.
Supports custom reporters via the DiagnosticsReporting protocol and directory tree visualizations, allowing developers to tailor data collection to specific app needs.
Includes built-in insights like low storage warnings and app version checks, with a flexible framework for adding custom automated analysis based on report data.
Provides DiagnosticsReportFilter to exclude sensitive data such as UserDefaults keys, ensuring reports comply with privacy regulations without manual intervention.
Relies on MFMailComposeViewController, which fails on iOS devices without mail accounts configured; the fallback is limited to saving files on the simulator, hindering real-world testing.
Exclusive to Swift and Apple's iOS, iPadOS, and macOS ecosystems, making it unsuitable for projects using other languages or cross-platform development stacks.
Requires early initialization in app lifecycle (e.g., in didLaunchWithOptions) and careful configuration of reporters and filters, adding overhead for simpler logging needs.