gpt4 book ai didi

cocoa - 部署 Beta 软件更新和 Sparkle

转载 作者:行者123 更新时间:2023-12-03 16:03:41 24 4
gpt4 key购买 nike

我的应用程序使用 Cocoa Framework Sparkle 来部署更新。我通常不会部署软件的测试版,但对于下一次更新,我觉得我需要这样做。我的问题是使用 Sparkle 部署测试版的最佳编号策略是什么。对于测试我的测试版的任何人,我希望在发布下一个正式版本时能够无缝更新,但对于其他用户,我希望整个系统完全不可见。我目前使用 1.2.3 等编号系统进行更新。

最佳答案

我最近也考虑这样做。我的应用程序的开发设置是 Xcode(显然)和 Sparkle,我在 Mercurial 存储库中维护我的代码。作为构建过程的一部分,我使用“hg id”查询 Mercurial 来填充 Info.plit。这是在我的 Xcode 目标的构建脚本中完成的。这是脚本:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion `/usr/local/bin/hg id -in`" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString `/usr/local/bin/hg id -t`" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"

因此,对于测试版,我可以将我的变更集标记为“0.29b”或其他任何名称。为了让想要获得 Beta 版本的用户实现 SUUpdater 委托(delegate)方法:

#pragma mark -
#pragma mark SUUpdate Delegate methods

- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile {
if([[NSUserDefaults standardUserDefaults] boolForKey:BSEnableBetaUpdates]) {
return [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"beta", @"key", [NSNumber numberWithBool:YES], @"value", @"Enable beta updates", @"displayKey", @"Yes", @"displayValue", nil], nil];
} else {
return nil;
}
}

其中 BSEnableBetaUpdates 是用户在我的首选项窗口中设置的常量。其作用是确保对 feed url 的 GET 请求包含 beta=1。在服务器上,您可以解释这一点并提供测试版本的应用广播,或者如果正常版本不存在的话。我不会解释你如何做到这一点,无论是使用 php、.htaccess 等等。

关于cocoa - 部署 Beta 软件更新和 Sparkle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com