1
7
最好的方法可能是完全断开cfbundleversion(它必须只包含。和数字,并被Sparkle的版本比较和操作系统使用),以及cfbundleshortversionString(它可以被任何东西使用,也是用户看到的)。 然后,您只需确保您的cfbundleversion始终随时间增加,但也可以是任何[*],而您分别使用1.2.4b和1.2.4作为测试版和最终版的cfbundlestortversionString。只要测试版的cfbundleversion比您当前的cfbundleversion高,并且最终非测试版的cfbundleversion比测试版高,所有事情都会按照您想要的方式解决。 [*]请记住,尽管苹果的文档没有提到它,但9999.99.99几乎是LaunchServices可以识别的最高版本,它会忽略第三个以外的任何数字块,因此计划使用一个甚至不会超过该值的方案;闪烁的更新仍然有效,但是操作系统会对哪个拷贝感到困惑。最新版本。 |
2
9
我最近也研究过这样做。我的应用程序的开发设置是xcode(很明显)和sparkle,我将代码维护在一个mercurial存储库中。作为构建过程的一部分,我使用“hg id”填充info.plit来查询mercurial。这是在我的xcode目标的构建脚本中完成的。这是脚本:
所以,对于beta版本,我可以将我的变更集标记为“0.29b”或其他。为了使想要获得beta版本的用户能够实现suupdater委托方法:
其中bsEnableBetaUpdates是用户在“我的首选项”窗口中设置的常量。这样做的目的是确保对提要URL的get请求包含beta=1。在服务器上,您可以解释这一点并提供beta版本的应用程序广播,或者如果它不存在普通版本的话。我不会解释如何使用php,.htaccess来实现这一点。 |
3
6
我喜欢使用Xcode附带的Apple版本控制工具。它维护一个与您的市场营销版本号(1.2.3)不同的并行构建号(例如12345)。使用命令行工具调用它
此外,如果您使用Subversion或CVS作为版本控制系统,那么这个工具有内置的支持。例如,我想增加我的内部版本号,我只需在终端中输入:
这将增加应用程序中每个目标的内部版本号,更新
那么这和火花有什么关系呢?我使用内部版本号作为
|
Noah H · 如何通过终端或Swift禁用三指轻拍手势? 6 年前 |
Dmitry Serov · 货币数字格式-数字为整数时省略分数部分 6 年前 |
Duny · ObjC日期始终返回2017年12月25日 6 年前 |
Jan Kaiser · NSButton不调用其操作 6 年前 |