Debugging
Learn more and get better in Debugging using this list of Debugging blog posts, tutorials, tips, and tricks.
VoiceOver Navigator & 120 FPS Recordings for Xcode’s Simulator
Test your app's VoiceOver support using Xcode's Simulator and create high-quality 120 FPS recordings. That's what RocketSim's major 15.0 release will bring, and it's not all! We also created insights based on your networking sessions and we're moving towards AI supportive insights. If you're new to RocketSim, check it out ...
Introducing Diagnostics: Improved Debugging and User Support
A diagnostics report that helps you solve bugs and improve user support at the same time. I've been writing apps since 2009, and the Diagnostics repository is an outcome of all that experience. Used by major apps from companies like WeTransfer, it has proven it's value time after time. I've ...
Network Link Conditioner: Simulating Slow Networking
The Network Link Conditioner allows you to test your apps under slow networking conditions on macOS and iOS. The tool is available for free, provided by Apple, and comes with several default network simulation profiles like 3G, Edge, and 100% loss. While the tool is built-in on iOS, you'll need ...
Stop waiting. Start shipping.Shared runners, queued jobs, throttled Xcode builds — CI shouldn’t slow you down. Flow Swiss gives you dedicated Apple Silicon machines, yours alone. No noisy neighbors, no limits — just raw Mac mini and Mac Studio performance in the cloud, ready in seconds. New Xcode dropped? You’re ready day one. Learn more.
Memory consumption when loading UIImage from disk
Memory consumption can quickly increase if you load many images from the disk using UIImage. You'll generally load images from a remote address or via an asset catalog. However, you have bundled images in some cases, and you need to load them directly from a bundle path. In those cases, ...
Debugging SwiftUI views: what caused that change?
Debugging SwiftUI views is an essential skill when writing dynamic views with several redrawing triggers. Property wrappers like @State and @ObservedObject will redraw your view based on a changed value. This is often expected behavior, and things look like they should. However, in so-called Massive SwiftUI Views (MSV), there could ...
OSLog and Unified logging as recommended by Apple
OSLog is a replacement for print, and NSLog and Apple's recommended way of logging. It has different logging levels, like debugging, warning, and error logs. Altogether, it allows you to create an enriched logging experience fitting nicely in Xcode 15's new logging console. OSLog has a low-performance overhead and is ...
Network Extension Debugging on macOS
A Network Extension on macOS allows you to create content filters, DNS proxies, and more. They integrate nicely into the system settings and are often used for applications like firewalls and VPN services. While Apple provides several sample applications like this for filtering network traffic, they don't have an excellent ...
Deadlocks in Swift explained: detecting and solving
Deadlocks in Swift can make your app hang, causing a frustrating situation for both you and your users. Your app becomes unresponsive, and you can often only solve it by restarting the app. While features like actors reduce the number of deadlocks you'll run into, there's still a high chance ...
Flaky tests resolving using Test Repetitions in Xcode
Flaky tests can be frustrating to deal with. You're ready to open your PR until you realize your tests fail on CI while they succeeded locally. You even realize your test is succeeding when executing individually, and you're almost at a point to say, "Merging in as tests succeed locally." ...
Using Custom debug descriptions to improve debugging
Custom debug descriptions can help you debug your own custom objects, structs, errors, and other types. Whenever you print out an object you might end up with basic information that doesn't really help you solve your issue. Printing out a struct shows you all the values while you might only ...
No space left on device: Testing low storage scenarios
No space left on device is an error message that starts to show up more lately. Over the years, storage has grown from 1GB to 1TB but with technologies like iCloud, we can also see storage stopping at 64GB. On top of that, we're making more content of higher quality ...