code: function updateProjectPlistForLaunchStoryboard (platformConfig, infoPlist) {
      var currentLaunchStoryboard = infoPlist[UI_LAUNCH_STORYBOARD_NAME];
      events.emit('verbose', 'Current launch storyboard ' + currentLaunchStoryboard);
  
      var hasLaunchStoryboardImages = platformHasLaunchStoryboardImages(platformConfig);
  
      if (hasLaunchStoryboardImages && !currentLaunchStoryboard) {
          // only change the launch storyboard if we have images to use AND the current value is blank
          // if it's not blank, we've either done this before, or the user has their own launch storyboard
          events.emit('verbose', 'Changing info plist to use our launch storyboard');
          infoPlist[UI_LAUNCH_STORYBOARD_NAME] = CDV_LAUNCH_STORYBOARD_NAME;
          return;
      }
  
      if (!hasLaunchStoryboardImages && currentLaunchStoryboard === CDV_LAUNCH_STORYBOARD_NAME) {
          // only revert to using the launch images if we have don't have any images for the launch storyboard
          // but only clear it if current launch storyboard is our storyboard; the user might be using their
          // own storyboard instead.
          events.emit('verbose', 'Changing info plist to use legacy launch images');
          delete infoPlist[UI_LAUNCH_STORYBOARD_NAME];
          return;
      }
      events.emit('verbose', 'Not changing launch storyboard setting in info plist.');
  }
docs: Updates the project's plist based upon our launch storyboard images. If there are no images, then we should
  fall back to the regular launch images that might be supplied (that is, our app will be scaled on an iPad Pro),
  and if there are some images, we need to alter the UILaunchStoryboardName property to point to
  CDVLaunchScreen.
  
  There's some logic here to avoid overwriting changes the user might have made to their plist if they are using
  their own launch storyboard.