Spezi 存储

Build and Test codecov DOI

Spezi 存储框架提供了两个模块,用于在磁盘上存储信息。 LocalStorage 模块可用于存储无需加密的信息。凭据、密钥和其他需要加密的敏感信息可以使用 KeychainStorage 模块存储。

设置

您需要在 Xcode 中将 Spezi 存储 Swift 包添加到 您的应用程序Swift 包中。

重要提示

如果您的应用程序尚未配置为使用 Spezi,请按照 Spezi 设置文章来设置核心 Spezi 基础架构。

您可以在 SpeziAppDelegate 中配置 LocalStorageKeychainStorage 模块。

重要提示

如果您在 macOS 平台上使用 SpeziStorage,请确保通过 *PROJECT_NAME > Signing&Capabilities > + Capability* 将 Keychain Access Groups 授权 添加到封闭的 Xcode 项目中。 密钥链组的数组可以留空,只需要基本授权。

import Spezi
import SpeziLocalStorage
import SpeziKeychainStorage

class ExampleDelegate: SpeziAppDelegate {
    override var configuration: Configuration {
        Configuration {
            LocalStorage()
            KeychainStorage()
            // ...
        }
    }
}

然后,您可以在任何 SwiftUI 视图中使用 LocalStorageKeychainStorage 类。

struct ExampleStorageView: View {
    @Environment(LocalStorage.self) var localStorage
    @Environment(KeychainStorage.self) var keychainStorage
    
    var body: some View {
        // ...
    }
}

或者,通常将 LocalStorageKeychainStorage 模块用作其他模块的依赖项:Spezi 模块依赖项

本地存储

LocalStorage 模块支持在移动应用程序中进行磁盘上的数据存储。

默认情况下,LocalStorage 模块使用 KeychainStorage 模块支持的加密方式存储数据。 LocalStorageKey 类型用于定义存储条目,并指定应如何持久化数据。

密钥链存储

KeychainStorage 模块允许使用 Apple 的 密钥链文档,对少量敏感用户数据(例如互联网服务的用户名和密码或加密密钥)进行加密存储。

凭据可以存储在安全区域(如果可用)或密钥链中。 存储在密钥链中的凭据可以在用户设备的不同实例之间同步。

处理凭据

使用 KeychainStorage 模块在与服务器关联的密钥链中存储一组 Credentials 实例,这些凭据可在不同设备之间同步。

处理密钥

Credentials 实例类似,您还可以使用 KeychainStorage 模块与加密密钥进行交互。

有关更多信息,请参阅 API 文档

Spezi 模板应用程序

Spezi 模板应用程序提供了一个很好的起点和使用 Spezi 存储模块的示例。

贡献

欢迎对本项目做出贡献。 请务必先阅读贡献指南贡献者公约行为准则

许可证

本项目采用 MIT 许可证。 有关更多信息,请参阅 许可证

Spezi Footer Spezi Footer