Spezi 存储框架提供了两个模块,用于在磁盘上存储信息。 LocalStorage
模块可用于存储无需加密的信息。凭据、密钥和其他需要加密的敏感信息可以使用 KeychainStorage
模块存储。
您需要在 Xcode 中将 Spezi 存储 Swift 包添加到 您的应用程序或 Swift 包中。
重要提示
如果您的应用程序尚未配置为使用 Spezi,请按照 Spezi 设置文章来设置核心 Spezi 基础架构。
您可以在 SpeziAppDelegate
中配置 LocalStorage
或 KeychainStorage
模块。
重要提示
如果您在 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 视图中使用 LocalStorage
或 KeychainStorage
类。
struct ExampleStorageView: View {
@Environment(LocalStorage.self) var localStorage
@Environment(KeychainStorage.self) var keychainStorage
var body: some View {
// ...
}
}
或者,通常将 LocalStorage
或 KeychainStorage
模块用作其他模块的依赖项:Spezi 模块依赖项。
LocalStorage
模块支持在移动应用程序中进行磁盘上的数据存储。
默认情况下,LocalStorage
模块使用 KeychainStorage
模块支持的加密方式存储数据。 LocalStorageKey
类型用于定义存储条目,并指定应如何持久化数据。
KeychainStorage
模块允许使用 Apple 的 密钥链文档,对少量敏感用户数据(例如互联网服务的用户名和密码或加密密钥)进行加密存储。
凭据可以存储在安全区域(如果可用)或密钥链中。 存储在密钥链中的凭据可以在用户设备的不同实例之间同步。
使用 KeychainStorage
模块在与服务器关联的密钥链中存储一组 Credentials
实例,这些凭据可在不同设备之间同步。
与 Credentials
实例类似,您还可以使用 KeychainStorage
模块与加密密钥进行交互。
有关更多信息,请参阅 API 文档。
Spezi 模板应用程序提供了一个很好的起点和使用 Spezi 存储模块的示例。
欢迎对本项目做出贡献。 请务必先阅读贡献指南和贡献者公约行为准则。
本项目采用 MIT 许可证。 有关更多信息,请参阅 许可证。