【问题标题】:Is it possible to read the 'current project version' in the settings of an iPhone app是否可以在 iPhone 应用程序的设置中读取“当前项目版本”
【发布时间】:2011-01-23 16:08:09
【问题描述】:

在我的应用程序中,我使用agvtool 更新内部版本号。我现在想让我的应用程序版本出现在设置中以显示这个数字并让它自动更新。

我已经看到一些应用程序通过编写脚本来准备值并将值填充到root.plist 中来解决这个问题。我想知道是否有更优雅的方式来做到这一点。

【问题讨论】:

    标签: iphone xcode root.plist agvtool


    【解决方案1】:

    看起来唯一的方法是创建一个脚本来提取数字并更新 plist 文件。以下网站很好地描述了脚本需要包含的内容

    http://davedelong.tumblr.com/post/110448898058/incrementing-build-numbers-in-xcode

    【讨论】:

    • @DaveDeLong 链接失效了!
    【解决方案2】:

    您正在寻找this。它包括有关如何设置和管理营销版本和内部版本号信息的信息。然后,当您需要构建字符串时,请执行以下操作:

    NSString *marketingVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
    NSString *buildNumber = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
    
    self.appVersionLabel.text = [NSString stringWithFormat:@"%@.%@", marketingVersion, buildNumber];
    

    【讨论】:

    • 嗨,Ken,感谢您的回复,但我正在寻找一种在我的应用程序设置中引用版本的方法。正如我在上面所指出的,我可以在应用程序启动时读取版本并随后填充设置,但如果该人先打开设置,这将不起作用。我认为唯一的方法是有一个脚本来复制值
    【解决方案3】:

    我不知道您的 agvtool,但我从代码中获取应用程序版本的方式是:

    [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

    这会从 info.plist 中获取版本号,您必须在将您的应用上传到 iTunesConnect 之前定义该版本号,所以这应该没问题:您依赖于一个您必须定义的值。

    【讨论】:

    • agvtool 是 Apple 通用版本控制工具。你是正确的它能够从代码中检索它,但我的问题是我希望它出现在应用程序的设置中,并且设置是从属性列表(root.plist)加载的。当我运行应用程序时,我可以通过读取设置然后将其写入设置来填充设置,但它无法解决有人首先打开设置的问题
    猜你喜欢
    • 2010-10-16
    • 2011-01-26
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多