测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可 | MIT |
发布最新版本 | 2017年6月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Lewis Smith 维护。
用于 iOS 的远程配置
许多开发者没有意识到他们可以远程控制应用程序的行为(前提是应用程序没有下载任何新代码)。
MajorTom 提供了一种非常简单的方式来远程配置您的应用程序,使您能够添加诸如 功能开关、临时 A/B 测试 或简单的 “每日消息”。
它受到 GroundControl 的启发,并在 NSUserDefaults
上提供了一个类别。
UserDefaults().registerDefaultsWithURL(url: URL(string:"https://theprogressapp.com/wtw/defaults.plist")!)```
…或者如果您需要成功/失败的回调,并且不希望监听 NSUserDefaultsDidChangeNotification
UserDefaults().registerDefaultsWithURL(url: URL(string:"https://theprogressapp.com/wtw/defaults.plist")!, success: { (response, dictionary) in
print(response.debugDescription)
print(dictionary.debugDescription)
}) { (response) in
print(response.debugDescription)
}
MajorTom 会异步下载并读取一个远程的 plist 文件。这可以是一个静态文件,也可以是动态生成的,如下面的示例所示
require 'sinatra'
require 'plist'
get '/defaults.plist' do
content_type 'application/x-plist'
{
'Greeting' => "Hello, World",
'Price' => 4.20,
'FeatureXIsLaunched' => true
}.to_plist
end
from django.http import HttpResponse
import plistlib
def property_list(request):
plist = {
'Greeting': "Hello, World",
'Price': 4.20,
'FeatureXIsLaunched': True,
'Status': 1
}
return HttpResponse(plistlib.writePlistToString(plist))
var plist = require('plist'),
express = require('express')
var host = "127.0.0.1"
var port = 8080
var app = express()
app.get("/", function(request, response) {
response.send(plist.build(
{
'Greeting': "Hello, World",
'Price': 4.20,
'FeatureXIsLaunched': true,
'Status': 1
}
).toString())
})
app.listen(port, host)
或者,简单地创建一个 plist 文件在 Xcode 中并将其上传到您的 web 服务器 :)
Lewis Smith
MajorTom 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。