2013-07-13 44 views
0

我創建了一個AppleScript捆綁的應用程序 - 從啓動從AppleScript的束

on run 
    set appAlias to POSIX path of (path to resource "MyApp.app") 
    set cmnd to appAlias & "Contents/MacOs/MyApp &" 

    display dialog "You're going to launch" & cmnd buttons {"Ok"} 
    do shell script cmnd with administrator privileges 
end run 

MyApp.appmain.app駐留在main.app/Contents/Resources

當我啓動main.app它退出顯示對話框並詢問usernamepassword而不之後從MyApp.app開始。 我在做什麼錯?

回答

1

嘗試:

on run 
    set appAlias to POSIX path of (path to resource "MyApp.app") 
    display dialog "You're going to launch" & appAlias buttons {"Ok"} 
    tell application "System Events" to open appAlias 
end run 

編輯

on run 
    set appAlias to POSIX path of (path to resource "MyApp.app") 
    display dialog "You're going to launch" & appAlias buttons {"Ok"} 
    do shell script "open " & quoted form of appAlias with administrator privileges 
end run 
+0

它的工作原理,但我需要使用管理員權限啓動。 – amplifier

+0

嘗試編輯版本... – adayzdone

+0

腳本要求權限並啓動應用程序,但我的應用程序無法在禁區內創建文件(/ Library/Application Support/Audio /)。我在腳本中發現一個錯誤,該應用程序與 – amplifier

3

一個問題可能是,如果有路徑中有空格的話基本上是路徑將是不正確的。因此,您應該始終使用「引用格式」來確保空格和其他路徑字符正確計入。試試這個...

on run 
    set appAlias to POSIX path of (path to resource "MyApp.app") 
    set cmnd to appAlias & "Contents/MacOs/MyApp" 

    display dialog "You're going to launch" & cmnd buttons {"Ok"} 
    do shell script (quoted form of cmnd & " &") with administrator privileges 
end run 

另外,我想你需要確定MyApp.app中的unix可執行文件的名稱。大多數applescript應用程序中都有「applet」,而不是應用程序的名稱。所以仔細檢查一下。您可能需要這個...

set cmnd to appAlias & "Contents/MacOS/applet" 
+0

不,MacOS上的「applet」是用於applescript包的。對於其他applicationname.app,它是/ Contents/MacOS/applicationname – amplifier

+0

是的,我知道這就是爲什麼我只說要仔細檢查一下你沒有錯誤。請仍然在我的代碼中使用「引用表單」的建議。 – regulus6633

0

在我的腳本中有一個愚蠢的錯誤。我需要寫的,而不是「Mac系統」 「MacOS的」這裏是我的允許應用程序創建在禁區內的文件的腳本:

on run 
    set appAlias to POSIX path of (path to resource "MyApp.app") 
    set cmnd to appAlias & "Contents/MacOS/MyApp" 

    display dialog "You're going to launch" & cmnd buttons {"Ok"} 
    do shell script cmnd with administrator privileges 
end run 
+2

正如我在文章中所說的,我仍然會在shell腳本中將「引用的形式」放在cmnd前面。您可以將main.app移動到名稱中帶有空格的文件夾中,所引用的形式將使您的腳本更加健壯。 – regulus6633

+0

@ regulus6633,哦,是的,同意 – amplifier

相關問題