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 アプリを開き、Scripts Postflight でデスクトップへのパス (/Users/MyName/Desktop/delete.sh) を指定しました。次にビルド&ランを実行しました。うまくいきませんでした。おそらくスクリプトだと思ったので、次のように変更しました。

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

次に、上記のスクリプトで行ったのと同じ方法で、delete.sh ファイルをロードしました。しかし、私はこのエラーを受け取りました:

3 月 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 への追加のステップバイステップの実装を持っている人がいて、おそらく私のスクリプトが正しくない場合は、助けていただければ幸いです。

よろしくお願いします!:)

4

2 に答える 2

1

ターミナルから delete.sh を起動しようとしましたか? 構文にエラーがあるようです - ';' rm コマンドの最後に -f フラグを使用する必要があります (「 」を参照man rm)。そうしないと、スクリプトで確認のプロンプトが表示され、ポストフライト スクリプトを対話型にすることができません。
編集:一二三がセミコロンに言及したように-それは重要ではありません。おそらく彼の答えに目を向けるべきです。そして、パッケージを作成する前に、ターミナルでスクリプトを試してみてください (sudo suルートとしてログインする前に行うことができます) 。

于 2013-03-30T06:17:40.587 に答える