以编程方式更新 info.plist 中的值 [重复]

Posted

技术标签:

【中文标题】以编程方式更新 info.plist 中的值 [重复]【英文标题】:updating value in info.plist programmatically [duplicate] 【发布时间】:2017-04-16 02:28:26 【问题描述】:

我的 info.plist 中有一个名为 radiusDistance 的值,我正在尝试更改它,我尝试使用此代码但它不会更改值

let path = Bundle.main.path(forResource: "Info", ofType: "plist")!
    var dict = NSDictionary(contentsOfFile: path) as! [String: AnyObject]


    let radiusDistance = dict["radiusDistance"]
    print("radiusDistance",radiusDistance as Any)
    let value = Int(5)


    do
         dict.updateValue(value as AnyObject, forKey: "radiusDistance")
     try path.write(toFile: path, atomically: false, encoding:String.Encoding.utf8)
    
    catch let error as NSError
        print("something went horribly wrong\(error.debugDescription)")
    

一切都运行了,但是当我回到我的 info.plist 时,没有任何变化,并且值保持在“0”

【问题讨论】:

您应该在您的应用程序第一次启动时加载您的 plist 并将其保存在本地某处。之后你可以对你的属性列表文件做任何你想做的事情 【参考方案1】:

应用的捆绑包是只读的。您无法保存对捆绑包的更改。

编辑:

而且,正如“Alexander”所说,您不应该尝试让程序自我修改。即使有可能,那也是一种糟糕的编码习惯。

【讨论】:

更重要的是:你不仅不能,而且你也不应该,即使有可能。 好的,谢谢你的帮助,我以前不知道这个

以上是关于以编程方式更新 info.plist 中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式访问 iOS 中其他已安装应用程序的 info.plist?

我可以在应用程序运行时以编程方式翻转 Info.plist 值吗?

我最近发布的应用更新在 info.plist 文件中没有最新/正确的值

如何获取 INFOPLIST_FILE 名称 iOS

如何访问某个 info.plist?

更新 app-info.plist 后的 xcode 仅显示应用程序中可用的旧信息