此 SDK 兼容 Appwrite 服务器版本 1.6.x。 对于旧版本,请查看以前的版本。
Appwrite 是一个开源后端即服务服务器,它抽象和简化了复杂且重复的开发任务,并将其置于一个非常易于使用的 REST API 之后。 Appwrite 旨在帮助您以更快、更安全的方式开发您的应用程序。 使用 Apple SDK 将您的应用程序与 Appwrite 服务器集成,以轻松开始与所有 Appwrite 后端 API 和工具进行交互。 有关完整的 API 文档和教程,请访问 https://appwrite.io/docs
Appwrite Swift SDK 可通过 Swift Package Manager 获得。 为了从 Xcode 使用 Appwrite Swift SDK,请选择 File > Add Packages
在出现的对话框中,在搜索字段中输入 Appwrite Swift SDK 包 URL。 找到后,选择 sdk-for-apple
。
在右侧,选择您的版本规则,并确保在Add to Project字段中选择了您所需的目标。
现在点击 add package,你就完成了!
将包添加到您的 Package.swift
依赖项
dependencies: [
.package(url: "git@github.com:appwrite/sdk-for-apple.git", from: "8.0.0"),
],
然后将其添加到您的目标
targets: [
.target(
name: "YourAppTarget",
dependencies: [
.product(name: "", package: "sdk-for-apple")
]
),
要初始化您的 SDK 并开始与 Appwrite 服务交互,您需要向您的项目添加一个新的 Apple 平台。 要添加新平台,请转到您的 Appwrite 控制台,选择您的项目(如果尚未创建,请创建一个),然后点击项目仪表板上的“Add Platform”按钮。
从选项中,选择添加新的 iOS、macOS、watchOS 或 tvOS 平台,并添加您的应用程序凭据。
添加您的应用程序名称和 bundle identifier。 您的 bundle identifier 可以在您的 Xcode 项目文件或 Info.plist
文件中找到。 通过注册新平台,您允许您的应用程序与 Appwrite API 通信。
为了捕获 Appwrite OAuth 回调 url,需要将以下 URL scheme 添加到项目。 您可以通过选择您的项目文件,然后选择您希望使用 OAuth 的目标,从 Xcode 添加此 URL scheme。 从 Info
选项卡,展开 URL types
部分,并为 Identifier
添加您的 Appwrite 实例域名,并为 URL scheme
添加 appwrite-callback-[PROJECT-ID]
。 务必将 [PROJECT_ID] 字符串替换为您的实际 Appwrite 项目 ID。 您可以在控制台的项目设置屏幕中找到您的 Appwrite 项目 ID。 或者,您可以将以下代码块直接添加到您的目标的 Info.plist
文件
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>io.appwrite</string>
<key>CFBundleURLSchemes</key>
<array>
<string>appwrite-callback-[PROJECT-ID]</string>
</array>
</dict>
</array>
接下来,我们需要添加一个钩子,以便在我们的应用程序被其回调 URL 打开时保存 cookies。
如果您正在使用 UIKit,则可以跳过此部分。
在 SwiftUI 中,这就像确保在您要从中调用 OAuth 请求的 View
上调用 .registerOAuthHandler()
一样简单。
如果您正在使用 SwiftUI,则可以跳过此部分。
对于 UIKit,您需要将以下函数添加到您的 SceneDelegate.swift
。 如果您已经定义了此函数,则只需添加以下内容即可。
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url,
url.absoluteString.contains("appwrite-callback") else {
return
}
WebAuthComponent.handleIncomingCookie(from: url)
}
使用您的 Appwrite 服务器 API 端点和项目 ID 初始化您的 SDK,这些信息可以在您的项目设置页面中找到。
import Appwrite
func main() {
let client = Client()
.setEndpoint("http://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
}
初始化您的 SDK 对象后,创建任何 Appwrite 服务对象并选择要发送的任何请求。 您可以在 SDK 文档或 API 参考部分找到您要使用的任何服务方法的完整文档。
let account = Account(client)
do {
let user = try await account.create(
userId: ID.unique(),
email: "email@example.com",
password: "password",
name: "Walter O'Brien"
)
print(String(describing: user.toMap()))
} catch {
print(error.localizedDescription)
}
import Appwrite
func main() {
let client = Client()
.setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
let account = Account(client)
do {
let user = try await account.create(
userId: ID.unique(),
email: "email@example.com",
password: "password",
name: "Walter O'Brien"
)
print(String(describing: account.toMap()))
} catch {
print(error.localizedDescription)
}
}
发生错误时,Appwrite Apple SDK 会抛出一个 AppwriteError
对象,其中包含 message
和 code
属性。 您可以在 catch 块中处理任何错误,并将 message
或 localizedDescription
呈现给用户,或者根据提供的错误信息自行处理。 以下是一个示例。
import Appwrite
func main() {
let account = Account(client)
do {
let user = try await account.get()
print(String(describing: user.toMap()))
} catch {
print(error.localizedDescription)
}
}
您可以使用以下资源来了解更多信息并获得帮助
此库由 Appwrite 自定义 SDK 生成器自动生成。 要了解有关如何帮助我们改进此 SDK 的更多信息,请在发送 pull-request 之前查看贡献指南。
有关更多信息,请参阅 BSD-3-Clause 许可证文件。