0

OS X で pkgbuild および productbuild ツールを使用してアプリケーション インストーラーを作成します。作成したパッケージは、アプリケーションを /Application フォルダーにインストールします。ここで、このアプリケーションを NSFileManager (別のアプリを使用) を使用して別の場所に移動すると、パッケージは新しい場所に再インストールされますが、インストールする予定の /Application に移動します。

これは何らかのファイル パス キャッシュのように見えますが、どうにかして "キャッシュをフラッシュ" して、pkg がアプリを正しい場所にインストールすることはできますか?

これは、Mavericks と El Capitan で気付きました。これはヨセミテにも当てはまると思います。

4

1 に答える 1

1

このアプリケーションを別の場所に移動した場合

OS X は、同じアプリケーションの複数の同一のコピーを好みません。この問題は、アプリケーションがLaunch Servicesによって認識されたときにアプリケーションが登録されることが原因です。

アプリケーションが /Applications にコピーされるか、初めて実行されると、アプリケーションの詳細が Launch Services に登録されます。ユーザーがバンドルをダブルクリックしてアプリケーションを実行すると、Launch Services は登録されたアプリケーションを調べて、実際に実行するものを決定します。

OS X インストーラーは Launch Services と連携して動作するため、パッケージからバンドルをコピーする場合、最初に同じアプリケーションが登録されて存在するかどうかを確認します。アプリケーションが持っている場合、コピーは行われません。これは、/var/log/install.log のインストール ログで確認できます。

同じアプリケーションのコピーを複数持つと混乱する可能性があるため、これを行わないことをお勧めします。バンドルを脇に置いて再インストールする場合は、それをゴミ箱に移動します。これにより、Launch Services からその登録が削除されます。

于 2015-10-26T09:05:39.380 に答える