code: private static PBXObjectRef createPBXProject(final PBXObjectRef buildConfigurationList, final PBXObjectRef mainGroup,
        final String projectDirPath, final String projectRoot, final List targets) {
      final Map map = new HashMap();
      map.put("isa", "PBXProject");
      map.put("buildConfigurationList", buildConfigurationList.getID());
      map.put("hasScannedForEncodings", "0");
      map.put("mainGroup", mainGroup.getID());
      map.put("projectDirPath", projectDirPath);
      map.put("targets", targets);
      map.put("projectRoot", projectRoot);
      return new PBXObjectRef(map);
    }
docs: Create PBXProject.
  
  @param buildConfigurationList
  build configuration list.
  @param mainGroup
  main group.
  @param projectDirPath
  project directory path.
  @param targets
  targets.
  @param projectRoot
  projectRoot directory relative to
  @return project.