If you assign a bundle to a device or user, the Install action set runs on the device only in the following circumstances:
If the Install action set has never run on the device.
If the version of the Install action set is different from the version of the Install action set that has previously run on the device
The Install action set of a bundle is internally associated with a global version identifier and the Install action set of every bundle version is internally associated with a local version identifier.
If you make any modifications to a bundle other than modifying its Install action set, the Install action set of the sandbox that is created has the same local version identifier as the bundle version you modified. However, if you modify the Install action set of a bundle, the global version identifier of the bundle’s Install action set is incremented by one and the modified Install action set’s local version identifier is set to the new value of the global version identifier.
If the install action set or its options are modified and the bundle is re-published, then when the bundle is installed or launched, the install action set is invoked again, even if it has been set to install only once.