您是否曾遇到过在 App Store 上提交带有错误的 API 密钥、环境 URL 等构建的情况?好,ConfigurationKit 就是为此而生的。
一个 Configuration基本上是一个希望包含所有与配置您的应用程序相关的数据的 Dictionary(它可以是一切:API 密钥、URLs…)。这个Configuration会自行更新,并在您配置的事件发生时通过下载文件的新版本来通知您更改。
EventProducer。可以通过3个协议完成刷新周期
URLBuilder 用于在需要时提供构建有效的 NSURLRequest 的目的是。使用它允许您配置所有可以用来调用服务器的参数(HTTP 头部,Cookies,已签名的 URL,…)。Parser 将原始的 NSData 转换为可用的 Dictionary。Encryptor,因为安全性对于这类数据来说非常重要。它允许您解密来自服务器的数据,以便在解析之前可以立即解析。当然,您可能希望有一个初始配置(硬编码或包含在应用程序资源中),并使用它,但您也可能想使用最新可用的配置。这就是为什么在框架中引入了Cacher的原因:为了缓存配置的最新版本。再次提醒,由于安全性问题,在调用 Cacher 任何方法之前可以使用另一个 Encryptor 对数据进行加密。
TODO
将 sources/ConfigurationKit/**/*.swift 添加到您的项目中。
ConfigurationKit 为大多数需要的 `Configuration` 协议提供默认实现。
一个 FileCacher 是一个 Cacher 实现,它将数据保存到多个文件中。
您可以通过指定保存文件的目录路径并传入用于保存文件的选项来创建一个FileCacher。
目前唯一的选项是.IncludeInBackup,它可以允许您定义新配置应该包括在应用程序备份(iTunes和iCloud)中。
SimpleURLBuilder是一个使用静态URL来创建NSURLRequest的URLBuilder实现。
PListParser是Parser的一个实现,用于从Plist数据中读取配置。
FlatJSONParser是Parser的一个实现,用于从可以表示为[String: String]的JSON文件中读取配置。例如
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}ApplicationEventProducer可在iOS和tvOS中使用。当应用程序从后台返回前台时,它会产生一个事件。
StopWatchEventProducer会像重复的计时器一样生成事件。
TimedEventProducer在特定的日期和时间生成事件。