【问题标题】:iOS app update, how to update plist in the bundle?iOS 应用更新,如何更新包中的 plist?
【发布时间】:2011-04-14 17:00:04
【问题描述】:

有没有办法通过 iTunes 应用更新来更新捆绑包中的已修改 plist 文件?

我有一个应用程序,它以数组和字典的形式将一些数据存储在 plist 文件中。在某些更新中,我已将更多数组项添加到 plist 文件中,但似乎在更新应用程序时,除非用户删除应用程序并重新安装它,否则不会复制/更新新的 plist 文件。

如何让应用程序用新的 plist 文件的本地副本更新?

【问题讨论】:

    标签: iphone ios plist bundle


    【解决方案1】:

    您无法更新捆绑包中的任何内容。如果您希望能够更新它,请将 plist 保存在文档目录中。

    NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
            NSUserDomainMask, YES);
    NSString *documentsDirectory = [arrayPaths objectAtIndex:0];
    

    使用商店更新应用时不会删除文档目录中的文件。

    【讨论】:

    • 那么,如果我通过代码将更新后的 plist 文件移动到文档目录,它会覆盖/更新任何现有的 plist 文件吗?
    • 仅当存在同名且您选择使用适当的 NSFileManager 方法覆盖它时。
    【解决方案2】:

    版本化的 .plist 文件?例如。 MyApp-YYYYMMdd.plist

    【讨论】:

      【解决方案3】:

      我在一个应用中遇到了类似的问题。我要解决的是当应用程序在应用程序委托中获得 willEnterForeground 通知时检查应用程序是否已加载旧版本或新版本的 plist 文件,然后从包中加载新文件并将其保存到文档中目录。

      【讨论】:

      • 你是如何检查版本的?
      • 对我来说这很简单,因为文件中有基于日期的数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 2016-12-13
      • 2015-01-24
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      相关资源
      最近更新 更多