Инициализируйте Sparkle (OS X) с помощью URL-адреса appcast
Я использую инфраструктуру Sparkle для доставки обновлений для моего настольного приложения OS X. Чтобы иметь возможность указать Sparkle на разные системы (подготовка / производство), я перезаписываю запись URL appcast в файле Info.plist и сохраняю обновленный файл на диск всякий раз, когда я хочу изменить URL. Это имеет тот недостаток, что он не вступает в силу немедленно, но мне нужно перезапустить приложение, чтобы Sparkle использовал обновленную запись в файле plist.
Вопрос: Я не нашел никаких ресурсов о том, возможно ли передать URL-адрес appcast в Sparkle при инициализации, чтобы он не искал URL, загруженный из plist-файла ранее. Кто-нибудь может помочь в этом?
1 ответ
Это действительно было так просто:
// InitSparkle.mm
#include "InitSparkle.h"
#import <Cocoa/Cocoa.h>
#import <AppKit/AppKit.h>
#import <Sparkle/Sparkle.h>
SUUpdater* suupdater = NULL;
void initSparkle(const char* feedUrl)
{
suupdater = [[SUUpdater sharedUpdater] retain];
[suupdater setAutomaticallyChecksForUpdates:YES];
suupdater.feedURL = [NSURL URLWithString:[NSString stringWithUTF8String:feedUrl]];
[suupdater checkForUpdates:NULL];
}
Просто поместите URL фида в объект SUUpdater.