Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding NextcloudKit as a dependency is as easy as adding it to the dependencies value of your Package.swift.
dependencies: [
.package(url: "https://github.com/Nextcloud/NextcloudKit.git", .upToNextMajor(from: "2.0.0"))
]To add NextcloudKit to your app, clone this repo and place it somewhere in your project folder.
In an Xcode project, drag the cloned folder into the Project navigator — Xcode picks it up as a local Swift package. Then select your app target and add the NextcloudKit library (and NextcloudKitUI, if you need the UI components) under General ▸ Frameworks, Libraries, and Embedded Content.
If used in another Swift package, reference it by path instead:
dependencies: [
.package(path: "../NextcloudKit")
]Since most functions in NextcloudKit involve a server call, you can mock the Alamofire session request. For that we use Mocker.
To run integration tests, you need a docker instance of a Nextcloud test server. This is a good start.
- In
TestConstants.swiftyou must specify your instance credentials. The app token is automatically generated.
public class TestConstants {
static let timeoutLong: Double = 400
static let server = "http://localhost:8080"
static let username = "admin"
static let password = "admin"
static let account = "\(username) \(server)"
}- Run the integration tests.
GPLv3 with Apple app store exception.
Nextcloud doesn't require a CLA (Contributor License Agreement). The copyright belongs to all the individual contributors. Therefore we recommend that every contributor adds following line to the header of a file, if they changed it substantially:
@copyright Copyright (c) <year>, <your name> (<your email address>)
Please read the Code of Conduct. This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
More information how to contribute: https://nextcloud.com/contribute/
