Guides
Make a simulator and test a push notification
With Xcode on the Mac, Silan makes its own simulator in about 30 seconds and gives it the full testing tool set. This guide makes one, installs your app build, sends a test push to it and reads the notification back. Test pushes on a simulator need no push certificate: Silan injects them locally.
Time: about 15 minutes. The first simulator can take two minutes.
You need:
- Xcode with an iOS simulator runtime on the Mac.
- A simulator build of your app, as a
.appfolder, with an app id such ascom.example.cloudocs. - Silan, and for the command-line steps an API key from the Connections page under For developers (
silan keys createanswers403on the current release).
Test pushes are off on iOS 27 simulators, where the system’s push command hangs the simulator. The device’s health shows a warning. Use a simulator with an earlier runtime for this guide. Android emulators do not take test pushes.
-
Open Silan. In the empty Rack, or under Add a device, click Make a simulator and pick iPhone simulator. The line reads Starting Silan iPhone… About 30 s. Silan makes Silan iPhone (an iPhone 17) and waits for it to serve. Silan never lists or touches simulators you made yourself in Xcode.
-
Watch the sidebar. Silan iPhone shows as ready with its live picture. If the simulator stops later, its row says Stopped and Make a simulator starts it again.
-
Point a variable at the
silantool and note the simulator’s id.Terminal window SILAN=/Applications/Silan.app/Contents/Helpers/silan$SILAN devices --kind simulator -
Install your build. The agent tool is
install_app, with the path on this Mac andlaunchset to true. From the command line:Terminal window $SILAN call installApp deviceId=<device id> \--body '{"path":"/path/to/CloudDocs.app","launch":true}'The app opens on the simulator’s picture in Silan. Accept its notification permission prompt on the simulator the first time, with a tap in Silan.
-
Send a test push. The agent tool is
send_test_push, withapp_idand atitleandbody. From the command line:Terminal window $SILAN call sendTestPush deviceId=<device id> \--body '{"appId":"com.example.cloudocs","title":"New share","body":"Mia shared Q3 plan with you"}'The reply has
sentAtandchannel: simulator. A banner shows at the top of the simulator’s picture. -
Read the notification back. The agent tool is
get_notifications, which lists what Silan saw on the device even after the banner is gone. From the command line:Terminal window $SILAN call listNotifications deviceId=<device id> appId=com.example.cloudocsThe list holds the push with its title, body and the time Silan saw it.
- Put the three calls into a flow if you want them to repeat. A flow’s
waitstep takes anotificationcondition, so a run can send the push from a step and wait for the banner. The flow guide shows the file shape.
For an agent, the same three tools are in the testing and full profiles. Connect your coding app with Test my app so it gets them: see Connect Claude Code and drive a phone. Tool pages: install-app, send-test-push, get-notifications.
If something goes wrong
Section titled “If something goes wrong”- Make a simulator is missing. The Mac has no Xcode, or only the command-line tools, or no iOS simulator runtime. The line under Simulators and emulators in Settings › Devices & Drivers says which.
- The push call is refused with a health warning. The simulator runs iOS 27, where test pushes are off. Make the simulator with an earlier runtime.
- No banner shows. The app has not asked for notification permission, or you declined it. Open the app on the simulator and allow notifications, then send again.
- The call says the device is not in your lease. Another agent holds the simulator. Wait for it to release, or stop its task from the chat.