【发布时间】:2016-11-14 09:59:02
【问题描述】:
我想为我的应用实现应用内版本,但我不明白为什么不起作用?显示我已成功添加的输出,但是当我从 Xcode 打开 pList 文件时,它没有改变?为什么?这是我的代码:
func version(){
let urlString = jocomAPIKey + "/feed/version"
let CFBundleShortVersionKey = "CFBundleVersion"
//First get the nsObject by defining as an optional anyObject
let nsObject: AnyObject? = NSBundle.mainBundle().infoDictionary!["CFBundleVersion"]
let version = nsObject as! String
print("app version: \(version)")
Alamofire.request(.POST, urlString , parameters: ["os" : "iphone"])
.responseData { response in
let versionXML = SWXMLHash.parse(response.data!)
let versionString = (versionXML["rss"]["channel"]["item"]["version"].element?.text)
print("version string: \(versionString)")
if let plist = Plist(name: "Info") {
let dict = plist.getMutablePlistFile()!
dict[CFBundleShortVersionKey] = versionString
//3
do {
try plist.addValuesToPlistFile(dict)
print("added")
} catch {
print(error)
}
//4
print(plist.getValuesInPlistFile())
} else {
print("Unable to get Plist")
}
}
}
【问题讨论】:
-
您不能在运行时写入 info.plist(也不能写入应用程序包中的任何其他文件)。
-
@vadian 但我想实现自己的 api 版本来强制用户每次更新,我该怎么做?请指导我