A library to send mock remote notifications to the iOS simulator for testing push notification handling.
SimulatorRemoteNotifications is an iOS library that allows developers to send mock remote notifications to the iOS simulator for testing purposes. It solves the problem of needing to test push notification handling without relying on Apple's Push Notification service (APNS), enabling faster development cycles and more reliable debugging.
iOS developers and QA engineers who need to test remote notification handling, including background fetch notifications, within the iOS simulator during development.
Developers choose SimulatorRemoteNotifications because it provides a lightweight, self-contained solution for testing push notifications directly in the simulator, eliminating the complexity of setting up APNS and allowing for easy integration with existing tests and development workflows.
Library to send mock remote notifications to the iOS simulator
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables sending mock notifications directly to the iOS simulator via UDP, eliminating the need for APNS setup and speeding up development cycles, as highlighted in the README's focus on bypassing Apple's service.
Handles background fetch notifications for iOS 7+, triggering callbacks when the app is foregrounded, which is useful for debugging background logic without real push services.
Includes a macOS GUI app and command-line support via netcat, providing multiple ways to send notifications during development, as shown in the screenshots and usage examples.
Extends UIApplication with a category to start listening, automatically providing a simulator-specific device token for seamless setup, as described in the usage section.
Relies on UDP and mock payloads, so it doesn't simulate real APNS behavior like payload size limits or delivery guarantees, which could lead to missed issues in production.
The last CocoaPods version is 0.0.3, and the project shows signs of age (e.g., Travis CI integration), posing risks for compatibility with newer iOS versions or modern development workflows.
Manual installation requires setting linker flags and adding files directly, which is more error-prone compared to modern dependency managers like Swift Package Manager.