![suk-github-banner](https://private-user-images.githubusercontent.com/129311622/395884362-1df43ee3-e749-4d47-858c-2dbbb1bae1d8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MDEyMTUsIm5iZiI6MTczODkwMDkxNSwicGF0aCI6Ii8xMjkzMTE2MjIvMzk1ODg0MzYyLTFkZjQzZWUzLWU3NDktNGQ0Ny04NThjLTJkYmJiMWJhZTFkOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QwNDAxNTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMGNmMTYyYWQzODc3MDU0OGZlYTRlZmVjNDZmYzQ1MGZmZTgwZTRiNmEwMjE3MTIxYTM3NTkxZTBkN2I1NjQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YOxDiHTzgEGd4keqiteskQq2-0JmfLSm-1skqDpJCd4)
SwiftUpdateKit is a simplified yet powerful update framework designed for macOS applications. It provides easy integration for handling software updates, enabling features like delta updates, custom release channels, and lifecycle event hooks, all while minimizing setup complexity. Whether you need to implement automatic updates or build a custom update mechanism, SwiftUpdateKit provides the flexibility and power to meet your needs.
Note
SwiftUpdateKit is currently in development and not yet ready for production use. You are welcome to use the latest alpha/dev build at your own risk. We welcome feedback here.
- Automatic Update Checks: Fetch and parse release feeds with minimal setup.
- Customizable Channels: Support for stable, beta, alpha, and custom release channels.
- Delta Updates: Download only the parts of the software that have changed.
- Lifecycle Hooks: Add custom logic during update events (e.g., pre-installation, post-installation).
- Error Reporting: Built-in API to handle and report errors gracefully.
- Code-Signing Validation: Ensure the integrity and authenticity of updates.
- Custom Release Providers: Integrate with GitHub, custom servers, or other release feeds.
- User-Friendly Update Notifications: Notify users about updates in a clear, non-intrusive way.
- macOS: 15.0 or later
- Swift: 6.0 or later
Tip
Legacy Version is in planning
You can install SwiftUpdateKit
into your Xcode project via SPM. To learn more about SPM, click here
- In Xcode 12, open your project and navigate to File → Swift Packages → Add Package Dependency...
For Xcode 13, navigate to Files → Add Package
- Paste the repository URL (https://github.com/N3v1/SwiftUpdateKit.git) and click Next.
- For Version, verify it's Up to next major.
- Click Next and select the SwiftUpdateKit Product
- Click Finish
- You are all set, thank you for using SwiftUpdateKit!
You can also add it to the dependencies of your Package.swift
file:
dependencies: [
.package(url: "https://github.com/N3v1/SwiftUpdateKit", .upToNextMajor(from: "1.0.0"))
]
Before you start, please star ⭐️ this repository. Your star is our biggest motivation to pull all-nighters and maintain this open-source project. If you like the idea behind this project, please share it with your friends, colleagues, or anyone who might find it valuable.
Contributions are welcome here for coders and non-coders alike. No matter what your skill level is, you can for certain contribute to SwiftUpdateKit's open source community. Please read Contributing.md and the step-by-setp guide before starting.
If you encounter ANY issue, have ANY concerns, or ANY comments, please do NOT hesitate to let us know. Open a discussion, issue, or email us. As a developer, we feel you when you don't understand something in the codebase. We try to comment and document as best as we can, but if you happen to encounter any issues, we will be happy to assist in any way we can.
We would like to express our gratitude to all the individuals who have already contributed to SwiftUpdateKit! If you have any SwiftUpdateKit-related projects, documentations, tools or templates, please feel free to contribute it by submitting a pull request to our curated list on GitHub.
Your support is valuable to us and helps us dedicate more time to enhancing and maintaining this repository. Here's how you can contribute:
⭐️ Leave a Star: If you find this repository useful or interesting, please consider leaving a star on GitHub. Your stars help us gain visibility and encourage others in the community to discover and benefit from this work.
📲 Share with Friends: If you like the idea behind this project, please share it with your friends, colleagues, or anyone who might find it valuable.
SUK is licensed under the ScribbleLab License v1.0. See the LICENSE file for details.