code: def packageProject(self, dir=os.getcwd(), configuration='Shipping', extraArgs=[]):
  		
  		
  		# Verify that the specified build configuration is valid
  		if configuration not in self.validBuildConfigurations():
  			raise UnrealManagerException('invalid build configuration "' + configuration + '"')
  		
  		# Strip out the `-NoCompileEditor` flag if the user has specified it, since the Development version
  		# of the Editor modules for the project are needed in order to run the commandlet that cooks content
  		extraArgs = Utility.stripArgs(extraArgs, ['-nocompileeditor'])
  		
  		# Prevent the user from specifying multiple `-platform=` or `-targetplatform=` arguments,
  		# and use the current host platform if no platform argument was explicitly specified
  		platformArgs = Utility.findArgs(extraArgs, ['-platform=', '-targetplatform='])
  		platform = Utility.getArgValue(platformArgs[0]) if len(platformArgs) > 0 else self.getPlatformIdentifier()
  		extraArgs = Utility.stripArgs(extraArgs, platformArgs) + ['-platform={}'.format(platform)]
  		
  		# If we are packaging a Shipping build, do not include debug symbols
  		if configuration == 'Shipping':
  			extraArgs.append('-nodebuginfo')
  		
  		# Do not create a .pak file when packaging for HTML5
  		pakArg = '-package' if platform.upper() == 'HTML5' else '-pak'
  		
  		# Invoke UAT to package the build
  		distDir = os.path.join(os.path.abspath(dir), 'dist')
  		self.runUAT([
  			'BuildCookRun',
  			'-utf8output',
  			'-clientconfig=' + configuration,
  			'-serverconfig=' + configuration,
  			'-project=' + self.getProjectDescriptor(dir),
  			'-noP4',
  			'-cook',
  			'-allmaps',
  			'-build',
  			'-stage',
  			'-prereqs',
  			pakArg,
  			'-archive',
  			'-archivedirectory=' + distDir
  		] + extraArgs)
docs: Packages a build of the Unreal project in the specified directory, using common packaging options