{"id":13634148,"url":"https://github.com/onmyway133/PushNotifications","last_synced_at":"2025-04-18T14:33:47.832Z","repository":{"id":40601771,"uuid":"100891746","full_name":"onmyway133/PushNotifications","owner":"onmyway133","description":"🐉 A macOS, Linux, Windows app to test push notifications on iOS and Android","archived":false,"fork":false,"pushed_at":"2023-10-05T18:49:30.000Z","size":152598,"stargazers_count":2295,"open_issues_count":7,"forks_count":178,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-14T18:13:19.286Z","etag":null,"topics":["apn","electron","firebase","notification","push"],"latest_commit_sha":null,"homepage":"https://onmyway133.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onmyway133.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"onmyway133","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-08-20T22:15:32.000Z","updated_at":"2025-04-02T03:38:08.000Z","dependencies_parsed_at":"2024-01-02T21:54:48.668Z","dependency_job_id":"adf74748-bb4e-4f57-b7be-93e3e6968364","html_url":"https://github.com/onmyway133/PushNotifications","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmyway133%2FPushNotifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmyway133%2FPushNotifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmyway133%2FPushNotifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmyway133%2FPushNotifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onmyway133","download_url":"https://codeload.github.com/onmyway133/PushNotifications/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248933340,"owners_count":21185460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apn","electron","firebase","notification","push"],"created_at":"2024-08-01T23:00:57.598Z","updated_at":"2025-04-18T14:33:43.413Z","avatar_url":"https://github.com/onmyway133.png","language":"JavaScript","funding_links":["https://github.com/sponsors/onmyway133","https://www.buymeacoffee.com/onmyway133"],"categories":["Applications","JavaScript"],"sub_categories":["Development","👨‍💻 Development (9)"],"readme":"# ℙ𝕦𝕤𝕙 ℕ𝕠𝕥𝕚𝕗𝕚𝕔𝕒𝕥𝕚𝕠𝕟𝕤\n\n\u003ca href=\"https://www.buymeacoffee.com/onmyway133\"\u003e\n\t\t\u003cimg alt=\"Buy Me A Coffee\" src=\"https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png\" style=\"height: auto !important; width: auto !important;\" /\u003e\n\t\u003c/a\u003e\n\n❤️ Support my apps ❤️ \n\n- [Push Hero - pure Swift native macOS application to test push notifications](https://onmyway133.com/pushhero)\n- [PastePal - Pasteboard, note and shortcut manager](https://onmyway133.com/pastepal)\n- [Quick Check - smart todo manager](https://onmyway133.com/quickcheck)\n- [Alias - App and file shortcut manager](https://onmyway133.com/alias)\n- [My other apps](https://onmyway133.com/apps/)\n\n❤️❤️😇😍🤘❤️❤️\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/ios.png\" height=\"400\"/\u003e\n\u003c/div\u003e\n\n## Description\n\n- `PushNotitication` is an app used for testing push notifications on iOS and Android\n- Support macOS, Windows, Linux\n- Support using `certificate` and `token` for authentication with APNS\n- Auto save settings\n\n## How to install\n\n* Download latest release from https://github.com/onmyway133/PushNotifications/releases \n  - If using macOS Catalina (10.15+), here is the instruction of [how to open the app](#opening-app-on-macos-catalina-1015)\n\n## How to use\n* iOS (APNs):\n  - [iOS Provider Certificate](#ios-provider-certificates)\n  - [iOS Authentication Token](#ios-authentication-token)\n* Android (FCM):\n  - [Android Server Key](#android-server-key)\n\nKeep in mind: To connect to APNs you can use either `Provider certificate` or `Authentication Token`. They are **different ways** and `Authentication Token` is a new one.\n\n**Main difference:** `Provider certificate` expires every year and needs to be regenerated (and reuploaded to your server as `.p12`). `Authentication Token` is unlimited and you don't have to recreate and reupload it.\n\n### iOS Provider Certificate\n\n- Read more [Provider Certificates](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html#//apple_ref/doc/uid/TP40008194-CH11-SW1)\n- Go to [Member Center](https://developer.apple.com/account/ios/certificate/distribution/create)\n- Generate `Apple Push Notification service SSL (Sandbox \u0026 Production)`, this is now used for both sandbox and production. Download as `.cer` file\n- Double click on `.cer` file to install into `Keychain`, then export it as `.p12` file\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/Certificate.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n- In `PushNotifications`, select `.p12` file, fill out `passphase` if needed, fill out `bundle id`, `device token`, `message`, select `environment`\n- `message` must be in json format, see [Creating the Remote Notification Payload](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html)\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/iOSCertificate.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n### iOS Authentication Token\n\n- Read more [Authentication Tokens](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html#//apple_ref/doc/uid/TP40008194-CH11-SW1)\n- Go to [Member Center](https://developer.apple.com/account/ios/certificate/distribution/create)\n- Create a `Key` for push notification. Download as `.p8` file.\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/Key.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n- Note your `key id`\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/KeyId.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n- Note your `team id` on [Account Membership](https://developer.apple.com/account/#/membership)\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/TeamId.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n- In `PushNotifications`, select `.p8` file, fill out `key id`, `team id`, `bundle id`, `device token`, `message`, select `environment`\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/iOSToken.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n\n### Android Server Key\n\n- Read about [\nFirebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/)\n- Add or select project on [Firebase Console](https://console.firebase.google.com/u/0/)\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/AndroidServerKey.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n- In `PushNotifications`, fill out `server key`, `device token`, `message`\n- `message` must be in json format\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/Android.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n## Opening app on macOS Catalina or newer (10.15+)\n\nIf you installed the app on macOS Catalina using the `.dmg` file, you will probably see this window when trying to launch the app:\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/apple_check.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\nJust press `OK` and go to `System Settings...` -\u003e `Security \u0026 Privacy` -\u003e `General` tab. There you need to press the button `Open Anyway`.\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/apple_security.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\nIf you have macOS Ventura or later:\n\n\u003cdiv align = \"center\"\u003e\n\u003cimg src=\"Screenshots/apple_security_ventura.png\" width=\"600\"/\u003e\n\u003c/div\u003e\n\n## Manual building\n\nIn case of issues with running the app on your version of OS, it's possible to easily build it yourself.\n\nSteps:\n1) Download or clone the repository\n2) Install `node` on your computer (https://nodejs.org/en/)\n3) Run `npm install` in the root of downloaded/cloned project\n4) Verify that the app can be launched with the command `npm start` (optional)\n5) Build the project to generate installable files:\n\n- For building with `electron-builder` you need to run `npm run dist`. Generated files end up in the folder `dist` in the root of your project.\n\nAs a result `electron-builder` will generate:\n- For macOS: `.zip`, `.dmg` (if you build using macOS)\n- For Windows: `.msi` (if you build using Windows)\n- For Linux: `.deb`, `.AppImage` (if you build using Linux)\n\nKeep in mind: you cannot build for Windows or Linux, if you are using macOS, or vise versa. It creates installable files only for your current OS.\n\n## Credit\n\n- Icon http://emojione.com/\n- Use [node-apn](https://github.com/node-apn/node-apn) under the hood\n\n\n## Author\n\nKhoa Pham, onmyway133@gmail.com\n\n## License\n\n**PushNotifications** is available under the MIT license. See the [LICENSE](https://github.com/onmyway133/PushNotifications/blob/master/LICENSE.md) file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonmyway133%2FPushNotifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonmyway133%2FPushNotifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonmyway133%2FPushNotifications/lists"}