- Clone the repo
- Open the entire project file (
courier-ios
) in Xcode - Run
sh env_setup
from root - Update the
Env.swift
files located inExample/Example/Env.swift
andTests/CourierTests/Env.swift
to match the Courier credentials you'd like to test with
From here, you are all set to start working on the package! 🙌
- Make your changes to the
Sources/Courier_iOS
directory - When changes are ready, commit them to a branch in Github
- Yes, this is weird, but it's what Apple recommends I guess 🤷♂️
- Open the
Example/Example.xcodeproj
- Change your package dependencies to point to the new branch you are developing on
All set! This is the development flow
- Always test the Example project on a physical device
- Push notifications are hard to test and require a human to ensure quality. You are the person for that job, not a computer
- To run automated tests (which ensure the user defaults and api requests are working properly) go to
Tests/CourierTests/CourierTests.swift
Courier supports 2 packages managers:
- Swift Package Manager (Which is the style the project is based on)
- Cocoapods (Used for traditional iOS apps, Flutter and React Native)
To release the package:
- Update the
version
inSources/Courier_iOS/Courier_iOS.swift
to be the version you would like to release - Run
sh release.sh
from root
This will create a new release in github and cocoapods that anyone can install. Requires special Github permissions.