So as far as I understand it, once my app is running and has been activated once, the same contract will not launch it again. Meaning, as long as the app is not terminated (by the user, system) its state remains intact.
Now, when your app has been "launch" activated, and then is "protocol" activated the state is basically the same for the protocol as the launch version of your app. So I have to protect initializer code to run only once. Otherwise it
would run again when the app is activated via "protocol".
ShareTarget activation seems to behave differently, as it does not seem to share the same instance of the app? Am I right?