2013-03-10 57 views
0

我有一個AppleScriptObjC Xcode應用程序。在這個應用程序中,我構建了一個更新程序,用於在啓動時檢查更新並提示用戶下載它們。一切都很好 - 除了一件事。我需要應用程序在更新時重新啓動,以便更改生效。我在網上爲此搜索了高低,但我無法弄清楚。我不能「告訴應用程序」MyApp「退出」,因爲Xcode不允許這樣做。有任何想法嗎?如何使用AppleScriptObjC關閉我的Xcode應用程序?

+1

任何你想要自己更新解決方案而不是使用[Sparkle](http://sparkle.andymatuschak.org/)的理由? – duskwuff 2013-03-10 03:57:01

+0

@duskwuff不是,但我確實喜歡我擁有的那個。無論如何,你知道如何關閉它嗎? – russellsayshi 2013-03-10 04:02:18

回答

1

這是重新啓動的Objective-C方法。可能是你可以使用這個想法。

+(void)restart:(id)sender 
{ 
    NSString *restartScript = @"while ps -p $1 > /dev/null; do sleep 0.1; done; open \"$2\""; 
    NSArray *arguments = [NSArray arrayWithObjects: 
          @"-c", restartScript, 
          @"", 
          [NSString stringWithFormat:@"%d",[[NSProcessInfo processInfo] processIdentifier]], 
          [[NSBundle mainBundle] bundlePath], 
          nil]; 
    [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:arguments]; 
    [NSApp terminate:self]; 
} 
0

如果你只是想退出應用程序,使用命令quit似乎做工精細。如果你想讓它重新推出(不使用Objective-C),你可以嘗試只退出,做這樣的事情之前啓動一個單獨的腳本:

delay 2 
tell application "Name of Application" to activate 

我希望這個想法幫助。