We've tagged a number of issues as you can do this!. These will generally not require much (or any!) working knowledge of our SDK, they are tasks like migrating a single enum
into Swift, or a uncomplicated model
from objc to swift.
If you decide you want to help, that you can do this! tag is a good place to start. Now, here's how you can actually get going:
- Follow the directions from 2. Create a fork/branch. to setup your environment.
- Find an issue that speaks to you, and comment in it "I've got this" or something like that 😄.
- If the issue isn't clear enough, feel free to tag in sdk team
@RevenueCat/sdk
asking for clarification. - Work on the issue!
- Use our Swift Style Guide to ensure that the style is consistent with the rest of the codebase.
- Once you think you're done, build the
APITester
target. That target compiles a file that contains references to all public api for thePurchases
framework. This is how we ensure our changes don't impact the public api. - If that builds, then follow the final steps (Create a pull request to RevenueCat/main)
- Done!
Before submitting a Github issue, please make sure to
- Search for existing Github issues
- Review our Help Center
- Read our docs.revenuecat.com
There are certain project specific issues that are commonly misinterpreted as bugs.
- Offerings, products, or available packages are empty
- Invalid Play Store credentials errors
- Unable to connect to the App Store (STORE_PROBLEM) errors
For support I'd recommend our online community, StackOverflow and/or Help Center 👍
If you have a clearly defined bug (with a Minimal, Complete, and Reproducible example) that is not specific to your project, follow the steps in the GitHub Issue template to file it with RevenueCat without removing any of the steps. For SDK-related bugs, make sure they can be reproduced on a physical device, not a simulator (there are simulator-specific problems that prevent purchases from working).
We use fastlane 🚀 for all our automation, including setting up out dev environment.
$brew install fastlane
$fastlane setup_dev
This installs Homebrew, and then SwiftLint. After, it links in our pre-commit hook to run swiftlint. That saves you time so you don't have to wait for our CI to do it ⏱.
The Swift Style Guide illustrates the code style used across the project!
Use our Swift Style Guide to ensure that the style is consistent with the rest of the codebase. This is pretty subjective, so don't get too stressed about it. If there's any issue, we'll suggest a change.
You can run the tests by selecting the All Tests Scheme in Xcode and hitting Cmd+U
.
The tests are written in Swift, using XCTest and Nimble.
Explain in your pull request the work that was done and the reasoning.