We hope you love using FusionAuth iOS SDK, but in case you encounter a bug or an issue with the SDK, please do let us know.
Please only report issues for the FusionAuth iOS SDK itself if you have an issue with documentation or a client library follow these instructions.
As part of the FusionAuth community, please abide by the Code of Conduct.
Before reporting an issue, please search through the already open issues to see if you could contribute.
To report an issue, please follow the instructions of the bug, feature and general issue templates.
Before starting with contributing, you'll want to look at and choose an issue to work on. Here is a basic workflow you want to work from:
- Search the issue tracker for an issue that you want to work on. If your issue does not exist, please create a new one.
- Search GitHub for an open or closed Pull Request that relates to the issue you want to work on. You may find that someone else is already working on it, or that the issue is already resolved in a different branch.
You can find all the open issues here.
Once you have found an issue you want to work on, we suggest to:
- Fork the repository to your personal account.
- Create a new branch with the name fix/issue-id or feat/issue-id.
- And start working on that branch on the issue.
This SDK was developed with Xcode.
Checking out this repository will provide you with the full development environment including a fully functional example application with a FusionAuth runtime.
To open the project in Xcode, navigate to the FusionAuthSDK.xcworkspace workspace and open it.
The SDK is located in Sources/ the docs in Documentation/ and tests in Tests/ as well as Samples/Quickstart/QuickstartTests/.
To use the functionality of the SDK in Sources/ we load it in to the Samples/Quickstart/ which you can start within Xcode by running the fusionauth-quickstart-swift-ios-native scheme as long you have the FusionAuthSDK.xcworkspace workspace loaded.
To run the App we suggest to use the latest simulator as a run destination or the defined simulator in the automated end to end tests.
The Samples/Quickstart/ is using FusionAuth for the different use cases (e.g. login, logout) and is preconfigured to work with the Samples/Quickstart/fusionauth/ located versions.
We suggest to use the following commands to switch between the different versions.
- Create:
docker compose up -d
to start fusionauth in the background. - Logs:
docker compose logs app
it will take a moment until the kickstart is initialized. - Destroy:
docker compose down -v
we destroy the volumes because we always want a fresh install.
During development of new features and fixes, we suggest using the following code quality tools which are preconfigured for this project:
The minimum tested version of Xcode is 14 the project is specified for 13.
It is important that these and other project minimum requirements are not accidentaly updated by the use of a newer Xcode version so earlier builds start failing. So before commiting changes please review the project file changes in detail e.g. for a version increas for objectVersion, IPHONEOS_DEPLOYMENT_TARGET, version and others.
To generate documentation for the project.
Installation: brew install sourcedocs
Generate Documentation: sourcedocs generate -- -scheme FusionAuth
To enforce Swift style and conventions.
Installation: brew install swiftlint
Run SwiftLint: swiftlint
See FusionAuth Swift SDK Quickstart Testing for a full tutorial on Android Test.
When you are ready to submit your pull request, visit the main repository on GitHub and click the "Compare & pull request" button. Here you can select the branch you have been working on and create a pull request.
If you're creating a pull request for an issue, please include Closes #XXX
in the message body where #XXX
is the issue you're fixing. For example, Closes #42
would close issue #42.
After you have submitted your pull request, several checks will be run to ensure the changes meet the project's guidelines. If they do, the pull request will be reviewed by a maintainer and subsequently merged.
The release proceeds through three sequential steps: Prerelease Process, Release Process and Quickstart Release Process. Where Pre-Release Process gets repeated untill a stable release is possible.
The prerelease process is as follows:
- TODO
The prerelease.yml
workflow will automatically create a GitHub release, build the library, and add the artifact to GitHub.
TODO
Minor re-versioning test
The release process is as follows:
- TODO
The release.yml
workflow will automatically create a GitHub release, build the library, and publish it to Maven Central.
After the release is published, update the version in the FusionAuth Swift iOS Quickstart Repository:
- TODO