Skip to content
/ Poes Public

A Swift command-line tool to easily send push notifications to the iOS simulator

License

Notifications You must be signed in to change notification settings

AvdLee/Poes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

530ab44 · Oct 5, 2020

History

15 Commits
Oct 5, 2020
Feb 7, 2020
Mar 2, 2020
Apr 14, 2020
Mar 2, 2020
Mar 2, 2020
Feb 8, 2020
Feb 8, 2020
Feb 8, 2020
Feb 8, 2020
Mar 10, 2020
Feb 8, 2020
Feb 8, 2020
Feb 7, 2020
Mar 2, 2020
Mar 2, 2020
Mar 2, 2020

Repository files navigation

Poes

A Swift command-line tool to easily send push notifications to the iOS simulator.

Twitter: @twannl

Poes helps you with:

  • Generating a JSON payload for push notifications
  • Sending and testing push notifications in the simulator

Requirements

  • Xcode 11.4 beta 1 and up

Usage

$ poes --help
OVERVIEW: A Swift command-line tool to easily test push notifications to the
iOS simulator

USAGE: poes <subcommand>

OPTIONS:
  -h, --help              Show help information.

SUBCOMMANDS:
  send                    Send a push notification to an app installed on the
                          iOS Simulator
$ poes send --help
OVERVIEW: Send a push notification to an app installed on the iOS Simulator

USAGE: poes send <bundle-identifier> [--title <title>] [--body <body>] [--badge <badge>] [--is-mutable] [--verbose]

ARGUMENTS:
  <bundle-identifier>     The bundle identifier of the app to push to 

OPTIONS:
  -t, --title <title>     The title of the Push notification (default: Default
                          Title)
  -b, --body <body>       The body of the Push notification (default: Default
                          Body)
  -b, --badge <badge>     The number to display in a badge on your app’s icon 
  -i, --is-mutable        Adds the mutable-content key to the payload 
  --verbose               Show extra logging for debugging purposes 
  -h, --help              Show help information.

The bundle identifier is mandatory, all others have a default value. The following command can be enough to send out a notification:

$ poes send com.wetransfer.app --verbose
Generated payload:

{
  "aps" : {
    "alert" : {
      "title" : "Default title",
      "body" : "Default body"
    },
    "mutable-content" : false
  }
}

Sending push notification...
Push notification sent successfully

Installation using Mint

You can install Poes using Mint as follows:

$ mint install AvdLee/Poes

Development

  • cd into the repository
  • run swift package generate-xcodeproj (Generates an Xcode project for development)
  • Run the following command to try it out:
swift run Poes --help

FAQ

Why is it called "Poes"?

Poes is a Dutch word for a female cat. The pronunciation is the same as "Push" and pushing notifications is what we're doing here!

Why is there a PoesCore framework?

This makes it really easy to eventually create a Mac App with a UI around it 🚀

How do I create a Swift Package myself?

Check out my blog post Swift Package framework creation in Xcode.

Can I learn more about testing Push Notifications on the iOS simulator?

Yes! I've written a detailed blog post about this: Testing push notifications on the iOS simulator