mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2026-03-18 20:02:25 +00:00
Added support for scheme management (#1142)
* wip * Added scheme management metadata properties to TargetScheme * wip * Added Scheme.Management for metadata * use sharedDefault * move generateSchemeManagement to SchemeGenerator * revert * update changelog * update docs * update test case * remove * remove unused file * revert * changed on fixtures project * Updated ProjectSpec docs index * User Scheme.Management also for TargetSchemes, use XCUserData * Changelog * Switch XcodeProj back tuist/XcodeProj - 8.9.0 * Reindent TOC Docs/ProjectSpec.md * Revert swift tools version --------- Co-authored-by: Tieme van Veen <tiemevanveen@hotmail.com>
This commit is contained in:
co-authored by
Tieme van Veen
parent
80e317206b
commit
43e40a9efc
@@ -13,22 +13,34 @@ public class ProjectGenerator {
|
||||
self.project = project
|
||||
}
|
||||
|
||||
public func generateXcodeProject(in projectDirectory: Path? = nil) throws -> XcodeProj {
|
||||
public func generateXcodeProject(in projectDirectory: Path? = nil, userName: String) throws -> XcodeProj {
|
||||
|
||||
// generate PBXProj
|
||||
let pbxProjGenerator = PBXProjGenerator(project: project,
|
||||
projectDirectory: projectDirectory)
|
||||
let pbxProj = try pbxProjGenerator.generate()
|
||||
|
||||
// generate Schemes
|
||||
let schemeGenerator = SchemeGenerator(project: project, pbxProj: pbxProj)
|
||||
let schemes = try schemeGenerator.generateSchemes()
|
||||
|
||||
// generate Workspace
|
||||
let workspace = try generateWorkspace()
|
||||
|
||||
let sharedData = XCSharedData(schemes: schemes)
|
||||
return XcodeProj(workspace: workspace, pbxproj: pbxProj, sharedData: sharedData)
|
||||
// generate Schemes
|
||||
let schemeGenerator = SchemeGenerator(project: project, pbxProj: pbxProj)
|
||||
let (sharedSchemes, userSchemes, schemeManagement) = try schemeGenerator.generateSchemes()
|
||||
|
||||
// generate shared data
|
||||
let sharedData = XCSharedData(schemes: sharedSchemes)
|
||||
|
||||
// generate user data
|
||||
let userData = userSchemes.isEmpty && schemeManagement == nil ? [] : [
|
||||
XCUserData(userName: userName, schemes: userSchemes, schemeManagement: schemeManagement)
|
||||
]
|
||||
|
||||
return XcodeProj(
|
||||
workspace: workspace,
|
||||
pbxproj: pbxProj,
|
||||
sharedData: sharedData,
|
||||
userData: userData
|
||||
)
|
||||
}
|
||||
|
||||
func generateWorkspace() throws -> XCWorkspace {
|
||||
|
||||
Reference in New Issue
Block a user