Last Updated Oct 15, 2025
Monitor URLSession Network Requests without the pain of custom certificates
Configuring a proxy using many of the popular apps like Proxyman and Charles Proxy often requires you to install custom certificates. It’s when you’re running into an unexpected network failure when you’ve realized you didn’t have the proxy running.
We knew this workflow could be improved and aimed to design a new solution:
- No need for custom certificates
- Easy setup that always work
- A consistent network requests monitor to catch those issues when you don’t expect them
The result is what we call “Network Monitoring” and it’s demonstrated in the following video:
Setting up RocketSim’s Network Monitor
RocketSim works by connecting via Bonjour with your development app. The in-app setup guides you by providing a piece of code that will only run during debug builds.
Here’s an example (note: you need to use the code from the app, not this example):
private func loadRocketSimConnect() {
#if DEBUG
guard (Bundle(path: "/Applications/RocketSim.app/Contents/Frameworks/RocketSimConnectLinker.nocache.framework")?.load() == true) else {
print("Failed to load linker framework")
return
}
print("RocketSim Connect successfully linked")
#endif
}
As you can see, the method will only run for debug builds due to the #if DEBUG
. Secondly, this code works for every engineer in your team in case you’re using Team Licenses. At least, as long as they’ve installed RocketSim inside the /Applications
directory, which we recommend!
Once you’ve copied the code, it’s time to run your app. Every time when you launch your app, RocketSim will connect directly. From that point on, all your network requests will be monitored in the background. There’s no impact on your app’s performance.
The latter is important to point out. We simply swizzle your network requests and send it over Bonjour in a background thread.
Your debugging partner when the unexpected happens
I’m sure you recognize this:
- You’re running your app during regular feature development
- An edge case occurs and suddenly your app doesn’t work as expected
- The app’s failure hints to an unexpected response failure, but you have no way to find out which request, or in which order they fired
These cases are no longer an issue. Now you can go back in time, find the exact order of requests that fired, and explore their responses.

Here’s an example of such a scenario. The screenshot displays the JSON response of the successful request, but we can also see that the other request failed. Selecting that request shows that it failed due to a network error:

You don’t always have to dive into detail, though. We also show a quick overview in the side window:

Download RocketSim today and get started
You can get RocketSim from the Mac App Store, which allows you to try out the network monitor for free.
Enjoy!