PrivateIncludePaths adding multiple platforms when using Editor's Launch

Hi!
I’m trying to make a plugin for Android and iOS.
I’m separating the codes from each platform by private folders.
It works fine in the Editor but when I click Launch it compiles for multiples platform: Unsupported AND iOS.

In my plugin’s *.Build.cs:



if (Target.Platform == UnrealTargetPlatform.IOS)
{
    PrivateIncludePaths.Add("MyPlugins/Private/iOS");
}
else if (Target.Platform == UnrealTargetPlatform.Android)
{
    PrivateIncludePaths.Add("MyPlugins/Private/Android");
}
else
{
    PrivateIncludePaths.Add("MyPlugins/Private/Unsupported");
}

Launch on iPhone:

LogPlayLevel: [1/3] Compile Module.MyPlugins.cpp
LogPlayLevel: In file included from MyPluginsExample/Plugins/MyPlugins/Intermediate/Build/IOS/UE4/Development/MyPlugins/Module.MyPlugins.cpp:5:
LogPlayLevel: In file included from MyPluginsExample/Plugins/MyPlugins/Source/MyPlugins/Private/Unsupported/MyPluginsProvider.cpp:3:
LogPlayLevel: Error: MyPluginsExample/Plugins/MyPlugins/Source/MyPlugins/Private/Unsupported/MyPluginsProvider.h:8:7: error: redefinition of ‘FMyPluginsProvider’
LogPlayLevel: class FMyPluginsProvider : public IMyPluginsProvider
LogPlayLevel: ^
LogPlayLevel: MyPluginsExample/Plugins/MyPlugins/Source/MyPlugins/Private/iOS/MyPluginsProvider.h:8:7: note: previous definition is here
LogPlayLevel: class FMyPluginsProvider : public IMyPluginsProvider
LogPlayLevel: ^

Why does it happen?
Thank you!