2013-03-30 37 views
0

我是OSx開發中的新手。在安裝過程中刪除包標識符文件

我使用Packagemaker 3.0.4創建安裝程序包。由於我想在安裝過程中刪除我的應用程序的本地設置,因此我決定刪除com.identifier.plist。但是,我在腳本編寫方面並不擅長,我只是開始探索Packagemaker的能力。

理想情況下,我想我的實現是如此簡單:

  1. 檢查是否的.plist文件存在
  2. 刪除它。

我曾嘗試:

#!/bin/sh 
defaults delete ~/Library/Preferences/com.identifier.AppName.plist 

然後我保存的文件delete.sh到桌面。我打開了Packagemaker應用程序,並在腳本Postflight中爲我的桌面提供了路徑:/Users/MyName/Desktop/delete.sh。然後我執行build &運行。它沒有工作。我想,這可能可能是劇本,所以我把它改爲:

#!/bin/sh 
rm ~/Library/Preferences/com.identifier.AppName.plist; 

然後我裝了delete.sh文件的方式,因爲我做了上面的腳本。但我收到此錯誤:

Mar 29 20:50:54 Mac-mini installd [5425]:PackageKit:安裝失敗:PKG:「com.testIdentifier.test.AppName.pkg」的後飛行腳本\ nError Domain = PKInstallErrorDomain Code = 112 UserInfo = 0x100404220「從包」test.pkg「運行腳本時發生錯誤。」 {\ n NSFilePath =「./postflight";\n NSLocalizedDescription =」從包\ U201ctest.pkg \ U201d運行腳本時發生錯誤。「; \ n NSURL =」./Contents/Packages/test.pkg - file://localhost/Users/MyName/Desktop/AppName.mpkg/「; \ n PKInstallPackageIdentifier =」com.testIdentifier.test.AppName.pkg「; \ n}

如果有任何人有分步說明,一步實現創建&將腳本添加到Packagemaker中,也許我的腳本不正確,如果你能幫我解決問題,那就太棒了。

非常感謝你提前! :)

+1

您的軟件包是否需要管理員或根授權? –

+0

它需要管理員授權 – Kimpoy

+0

呃,爲什麼不讓你的應用程序處理這個?如果新版本首次啓動,請重置本地設置。完成。要檢測更新版本的啓動,請將應用程序版本保存爲設置,以便在每次啓動時進行比較。 – LearnCocos2D

回答

1

我知道了......

這裏是我的腳本:

#!/usr/bin/env bash 

file=~/Library/Preferences//com.identifier.AppName.plist 
if [ -e "$file" ] 
then 
# file is found 
/usr/bin/defaults delete ~/Library/Preferences//com.identifier.AppName 
else 
# file not found." 
fi 

exit 0 

然後我將它添加到PackageMaker。我不確定自己是否正確,但我可能忘記將腳本文件添加到內容中。這就是爲什麼它從未工作過。我只是把腳本的路徑放在後臺。

無論如何,非常感謝大家的提示。

1

你是否嘗試從終端啓動你的d​​elete.sh?看起來你在語法上有錯誤 - ';'在rm命令結束時,在其他情況下,您應該使用-f標誌輸入rm命令(請參閱man rm),腳本將提示進行確認,並且postflight腳本不能交互。
編輯:如一二三提到的分號 - 不是重點,你應該看看他的答案。而在此之前,你將創建你的包只是嘗試在終端腳本(你可以做sudo su之前root身份登錄)

+0

分號在shell腳本中是完全有效的命令分隔符(儘管在本例中是多餘的)。 –

相關問題