code: def add_group(self, name, path=None, parent=None, source_tree=u'<group>'):
          
          group = PBXGroup.create(name=name, path=path, tree=source_tree)
  
          parent = self._get_parent_group(parent)
  
          parent.add_child(group)
          self.objects[group.get_id()] = group
  
          return group
docs: Add a new group with the given name and optionally path to the parent group. If parent is None, the group will
          be added to the 'root' group.
          Additionally the source tree type can be specified, normally it's group.
          :param name: Name of the group to be added (visible folder name)
          :param path: Path relative to the project where this group points to. If not present, name will match the path
              name
          :param parent: The PBXGroup that will be the parent of this group. If parent is None, the default 'root' group
              will be used as parent
          :param source_tree: The type of group to be created
          :return: PBXGroup created