Я недавно тоже занялся этим. Установкой разработки для моего приложения является Xcode (очевидно) с Sparkle, и я поддерживаю свой код в репозитории Mercurial. Как часть моего процесса сборки, я запрашиваю Mercurial, используя «hg id» для заполнения 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" или как угодно. Чтобы сделать так, чтобы пользователи, которые хотят получать бета-версии, я реализую метод делегата SUUpdater:
#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 - это константа, которую пользователь устанавливает в моем окне настроек. Для этого убедитесь, что в запросе GET к URL-адресу фида содержится бета = 1. На сервере вы можете интерпретировать это и предоставить appcast бета-версий или, если он не существует нормальных выпусков. Я не буду объяснять, как вы могли бы сделать это, используя php, .htaccess, что угодно.