ManagedAppConfigLib
概述
ManagedAppConfigLib 的目的是通过提供一个用于管理对它访问的类以及一些现代 Swift 使用属性包装器,使与苹果的 管理应用配置 的工作变得更容易。
管理应用配置已被苹果在 iOS 7+、macOS 11+ 和 tvOS 10.2+ 上支持。
安装
CocoaPods
通过向 Podfile 中添加以下内容,通过 CocoaPods 在您的目标下安装
pod 'ManagedAppConfigLib'
Swift 包管理器
使用 Swift 包管理器 进行安装,在您的 Package.swift
文件中添加以下内容
dependencies: [
.package(url: "https://github.com/jamf/ManagedAppConfigLib")
],
完整文档
该包的文档是由 DocC 从 GitHub Actions 生成的。详细信息请查看工作流程文件 publish_docs.yml.
基本用法
您需要在希望使用它的每个 Swift 文件中导入 import ManagedAppConfigLib
。
SwiftUI 属性包装器
功能类似于 SwiftUI 内置的 @AppStorage 属性包装器。提供了一种类型安全的只读属性,它可以随着 AppConfig 值的任何更改而保持自身更新,并在值更改时触发 SwiftUI 的重绘。
// If AppConfig "title" doesn't exist or is not a string, will have the value "Default title".
@AppConfig("title") var title = "Default title"
// If AppConfig "featureEnabled" doesn't exist or is not a boolean, will have the value `false`.
@AppConfig("featureEnabled") var isEnabled: Bool = false
// If AppConfig "orgColor" doesn't exist or is not a string, this will be nil.
@AppConfig("orgColor") var organizationHexColor: String?
非 SwiftUI 属性包装器
功能类似于 @AppConfig
属性包装器,但不需要 SwiftUI。提供了一种只读属性,它可以随着 AppConfig 值的任何更改而保持自身更新。这对于 UIKit 或 AppKit 代码、模型或 cli 工具中的简单 Foundation 代码很有用。
@AppConfigPlain("title") var title = "Default title"
@AppConfigPlain("featureEnabled") var isEnabled: Bool = false
@AppConfigPlain("orgColor") var organizationHexColor: String?
简单功能使用
- 检索托管应用的配置值
if let deviceId = ManagedAppConfig.shared.getConfigValue(forKey: "deviceId") as? String {
print(deviceId)
}
- 注册一个闭包,当托管应用的配置变化时执行
let myClosure = { (configDict: [String: Any?]) -> Void in
print("Managed App Configuration changed")
}
ManagedAppConfig.shared.addAppConfigChangedHook(myClosure)
- 将一个值放入托管应用反馈
let numberOfErrors = 0
ManagedAppConfig.shared.updateValue(numberOfErrors, forKey: "errorCount")