Инициализируйте 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.

Другие вопросы по тегам