Программа обновления Sparkle имеет около 10000 * миллиардов сообщений делегатов, которые она отправляет; Нетрудно перехватить одного из них, чтобы сначала создать резервную копию пакета приложения, прежде чем разрешить продолжить обновление.
Я бы начал с поиска критической точки в обновлении, например:
@protocol SUUpdaterDelegate <NSObject>
@optional
- (void)updater:(SUUpdater *)updater willDownloadUpdate:(SUAppcastItem *)item withRequest:(NSMutableURLRequest *)request;