postinstall スクリプトを pkg に追加すると、カスタム インストーラーで問題が発生します。私のコンピューターではインストールは正常に機能しますが、他のユーザーのシステムでは .app はインストールされますが、postinstall スクリプトは実行されずに失敗します。
--scripts
pkgbuild で引数を削除すると、インストーラーは問題を発生しません。追加すると (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
この問題の原因は何ですか?