我試圖在括號外殼應用程序中實現Sparkle。我相信我已經設置好了一切,但似乎失敗了。Sparkle凍結「正在安裝更新...」
它將運行更新,找到更新,準備就緒,然後當我點擊「安裝和重新啓動」按鈕時,它將無限期地位於「安裝更新...」屏幕上。
我以爲也許它是括號內的shell不想關閉它的最後一個孩子,所以我試圖實現updaterWillRelaunchApplication
委託方法。我想這就是我稱之爲檢查我的更新,這樣的功能前右加它:
@implementation NSObject (SUUpdaterDelegateInformalProtocol)
- (void)updaterWillRelaunchApplication:(SUUpdater *)updater {
NSLog(@"Closing properly");
// code to close properly
}
@end
但是,我從來沒有看到那個叫日誌消息,這我假設意味着我的代表沒有被稱爲。
所以,我基本上有兩個問題:
- 我是否正確地實施該委託?我是一個完整的XCode新手,所以我只是知道它看起來像我在網上看到的例子,並編譯。我宣佈代表的地點在哪裏?
- 想知道Sparkle如果不是因爲它的退出不正常,它可能會凍結?
謝謝。
更新
我發現一個非常奇怪和有趣的行爲。如果我在完成更新時沒有關注任何窗口(我的應用程序窗口或Sparkle窗口),它將工作得很好。如果我專注,會發生什麼情況是我的主窗口會關閉(就像它正在嘗試重新啓動),但Sparkle窗口保持打開狀態。然後我必須右鍵單擊並關閉應用程序。但是,如果在我點擊「安裝並重新啓動」按鈕之後,我翻轉到另一個應用程序(如Chrome),它會在後臺完好無損。如果Sparkle有專注,它似乎不會關閉。很奇怪。
作爲一種解決方法,我手動將「啓用自動更新」設置爲true,以便在沒有最終窗口的情況下執行所有操作......但這並不是很理想。
你可以檢查你的控制檯上Sparkle的任何崩潰嗎?我的應用程序上閃爍着Sparkle,並且完全按照您所描述的方式凍結。 –
你在使用沙盒應用程序嗎? –
我不是在沙盒應用上工作,我的控制檯沒有顯示任何崩潰。我發現了一些非常有趣的東西,我更新了我的帖子。 – samanime