The previous content of this pad has been removed because of my awful operation :( Now all of that I can make up is to record the key points of it.
Installer.app will auto-detect several script files to execute while processing package, you can get respective usage from their clear nameing:
1. preflight
2. preinstall/preupgrade
3. postflight
4. postinstall/postupgrade
Difference between xxxinstall and xxxupgrade:
Installer.app will look /Library/Receipts for previously installed ones. If exists, then it use xxxupgrade, if not, it use xxxinstall
Installer.app will auto-detect several script files to execute while processing package, you can get respective usage from their clear nameing:
1. preflight
2. preinstall/preupgrade
3. postflight
4. postinstall/postupgrade
Difference between xxxinstall and xxxupgrade:
Installer.app will look /Library/Receipts for previously installed ones. If exists, then it use xxxupgrade, if not, it use xxxinstall