4

postinstall スクリプトを pkg に追加すると、カスタム インストーラーで問題が発生します。私のコンピューターではインストールは正常に機能しますが、他のユーザーのシステムでは .app はインストールされますが、postinstall スクリプトは実行されずに失敗します。

--scriptspkgbuild で引数を削除すると、インストーラーは問題を発生しません。追加すると (postinstallスクリプトが空の場合でも)、「インストールに失敗しました」というメッセージが表示されます。ログは生成されません。

pkg は、次のようなスクリプトを使用して構築されます。

pkgbuild --identifier $PKG_IDENTIFIER \
         --version $APP_VERSION \
         --root $APP_PATH \
         --scripts Scripts/ \
         --install-location /Applications/$APP_NAME.app $TMP_PKG_PATH

productbuild --sign "Developer ID Installer: $COMPANY_NAME" \
             --distribution Distribution.xml \
             --package-path $INSTALLER_BUILD_PATH $INSTALLER_PKG_PATH

私のシステムでは、アプリは /Applications にインストールされ、postinstall スクリプトが実行されて機能します。他のシステムでは、ポストインストールはまったく実行されていないようです。

OSX 10.8 および 10.7 でテストされており、どちらも同じ問題が発生します。postinstall スクリプトは、すべてのシステム (./postinstallターミナルで使用) で個別にテストされ、動作します。

スクリプトは次のようになります。

#!/usr/bin/env sh
set -e

# Install launch agent
LAUNCH_AGENT_SRC="/Applications/MyApp.app/Contents/Resources/launchd.plist"
LAUNCH_AGENT_DEST="$HOME/Library/LaunchAgents/com.company.myapp.agent.plist"

# Uninstall old launch agent
if [ -f "$LAUNCH_AGENT_DEST" ]; then
  launchctl unload "$LAUNCH_AGENT_DEST"
  rm -f "$LAUNCH_AGENT_DEST"
fi

cp "$LAUNCH_AGENT_SRC" "$LAUNCH_AGENT_DEST"
launchctl load "$LAUNCH_AGENT_DEST"

# Open application
open -a "MyApp"

exit 0

この問題の原因は何ですか?

4

2 に答える 2

0

既に答えを見つけているかもしれませんが、スクリプトを見ずに言うのは少し難しいですが、postinstall スクリプトの最後に「exit 0」があることを確認できますか?

于 2013-04-23T01:12:14.550 に答える