ManagedAppConfigLib 1.1.2

ManagedAppConfigLib 1.1.2

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2023 年 8 月
SPM支持 SPM

KeplerKidKyle Hammond 维护。



  • Kyle Hammond 和 James Felton

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")