Sounds like you're running the scene in viewWillLayoutSubviews
without checking whether a scene is already running. Make sure the launch code looks like this, or it will relaunch the starting scene whenever the viewWillLayoutSubviews
method runs (it can and will be called multiple times, for example when rotating the device and apparently also when dismissing an ad):
-(void)viewWillLayoutSubviews
{
SKView* skView = (SKView*)self.view;
// only create/launch first scene when SKView has no running scene
if (skView.scene == nil)
{
// create and present scene here ...
}
[super viewWillLayoutSubviews];
}