Hide indexer scheme by default Use xcschememanagement.plist to hide the indexer scheme by default. PiperOrigin-RevId: 195159420
diff --git a/src/TulsiGenerator/XcodeProjectGenerator.swift b/src/TulsiGenerator/XcodeProjectGenerator.swift index d82b222..7599634 100644 --- a/src/TulsiGenerator/XcodeProjectGenerator.swift +++ b/src/TulsiGenerator/XcodeProjectGenerator.swift
@@ -661,6 +661,25 @@ let xcschemesURL = projectURL.appendingPathComponent("xcshareddata/xcschemes") guard createDirectory(xcschemesURL) else { return } + let userSchemeSubpath = "xcuserdata/\(usernameFetcher()).xcuserdatad/xcschemes" + let userSchemesURL = projectURL.appendingPathComponent(userSchemeSubpath) + guard createDirectory(userSchemesURL) else { return } + + func updateManagementDictionary( + _ dictionary: inout [String: Any], + schemeName: String, + shared: Bool = true, + visible: Bool = true + ) { + guard var schemeUserState = dictionary["SchemeUserState"] as? [String: Any] else { + return + } + let actualizedName = shared ? "\(schemeName)_^#shared#^_" : schemeName + let schemeDict: [String: Any] = ["isShown": visible] + schemeUserState[actualizedName] = schemeDict + dictionary["SchemeUserState"] = schemeUserState + } + func targetForLabel(_ label: BuildLabel) -> PBXTarget? { if let pbxTarget = info.project.targetByName[label.targetName!] { return pbxTarget @@ -713,6 +732,10 @@ } } + var schemeManagementDict = [String: Any]() + schemeManagementDict["SchemeUserState"] = [String: Any]() + schemeManagementDict["SuppressBuildableAutocreation"] = [String: Any]() + let runTestTargetBuildConfigPrefix = pbxTargetGeneratorType.getRunTestTargetBuildConfigPrefix() for entry in info.buildRuleEntries { // Generate an XcodeScheme with a test action set up to allow tests to be run without Xcode @@ -788,6 +811,7 @@ let data = xmlDocument.xmlData(options: XMLNode.Options.nodePrettyPrint) try writeDataHandler(url, data) + updateManagementDictionary(&schemeManagementDict, schemeName: filename) } func extractTestTargets(_ testSuite: RuleEntry) -> (Set<PBXTarget>, PBXTarget?) { @@ -864,6 +888,7 @@ let data = xmlDocument.xmlData(options: XMLNode.Options.nodePrettyPrint) try writeDataHandler(url, data) + updateManagementDictionary(&schemeManagementDict, schemeName: filename, visible: false) } try installSchemesForIndexerTargets() @@ -897,6 +922,7 @@ let data = xmlDocument.xmlData(options: XMLNode.Options.nodePrettyPrint) try writeDataHandler(url, data) + updateManagementDictionary(&schemeManagementDict, schemeName: filename) } var testSuiteSchemes = [String: [RuleEntry]]() @@ -919,6 +945,9 @@ try installSchemeForTestSuite(suite, named: suiteName) } } + + let schemeManagementURL = userSchemesURL.appendingPathComponent("xcschememanagement.plist") + guard savePlist(schemeManagementDict, url: schemeManagementURL) else { return } } /// Create a file that contains the execution root for the workspace of the generated project. @@ -1309,22 +1338,7 @@ let plistName = plistPaths.plistFilename(forRuleEntry: entry) let targetURL = URL(string: plistName, relativeTo: targetDirectoryURL)! - let data: Data - do { - data = try PropertyListSerialization.data(fromPropertyList: plistTemplate, format: .xml, options: 0) - } catch let e { - localizedMessageLogger.error("SerializingPlistFailed", - comment: LocalizedMessageLogger.bugWorthyComment("Failed to serialize a plist template"), - context: config.projectName, - values: e.localizedDescription) - return - } - - guard fileManager.createFile(atPath: targetURL.path, contents: data, attributes: nil) else { - localizedMessageLogger.error("WritingPlistFailed", - comment: LocalizedMessageLogger.bugWorthyComment("Failed to write a plist template"), - context: config.projectName, - values: targetURL.path) + guard savePlist(plistTemplate, url: targetURL) else { return } } @@ -1333,6 +1347,30 @@ localizedMessageLogger.logProfilingEnd(profilingToken) } + private func savePlist(_ plist: Any, url: URL) -> Bool { + let data: Data + do { + data = try PropertyListSerialization.data(fromPropertyList: plist, format: .xml, options: 0) + } catch let e { + let comment = LocalizedMessageLogger.bugWorthyComment("Failed to serialize a plist") + localizedMessageLogger.error("SerializingPlistFailed", + comment: comment, + context: config.projectName, + values: e.localizedDescription) + return false + } + + guard fileManager.createFile(atPath: url.path, contents: data, attributes: nil) else { + let comment = LocalizedMessageLogger.bugWorthyComment("Failed to write a plist") + localizedMessageLogger.error("WritingPlistFailed", + comment: comment, + context: config.projectName, + values: url.path) + return false + } + return true + } + private func createDirectory(_ resourceDirectoryURL: URL, failSilently: Bool = false) -> Bool { do { try fileManager.createDirectory(at: resourceDirectoryURL,
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4cb2953 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/ComplexSingleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Application.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TodayExtension.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..920c087 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/IosLegacyTestProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>LegacyTests.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..26b8105 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>MyCommandLineApp.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>MyMacOSApp.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>MyTodayExtension.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..9759e05 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/MacOSTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>MyMacOSApp.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>UITests.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>UnitTests.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>UnitTestsNoHost.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..e43f539 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleCCProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + <key>ccBinary.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..8286d52 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Application.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TargetApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..84a71dd --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SimpleSkylarkProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>SkylarkApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>SkylarkTargetApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>StickerExtension.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>XCUITest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..36e5e1f --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/SwiftProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Application.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..39776d9 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteExplicitXCTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>LogicTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestSuite-One-XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestSuite-Three-XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestSuite-Two-XCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + <key>explicit_XCTests_Suite.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..faf5c47 --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteLocalTaggedTestsProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>TestApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestSuiteXCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + <key>local_tagged_tests_Suite.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..62acbbe --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/TestSuiteRecursiveTestSuiteProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>TestApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>TestSuiteXCTest.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + <key>recursive_test_suite_Suite.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>tagged_tests_Suite.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>tagged_xctest_1.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>tagged_xctest_2.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..61b0f4a --- /dev/null +++ b/src/TulsiGeneratorIntegrationTests/Resources/GoldenProjects/WatchProject.xcodeproj/xcuserdata/_TEST_USER_.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Application.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>WatchApplication.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>WatchExtension.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <true/> + </dict> + <key>_idx_Scheme.xcscheme_^#shared#^_</key> + <dict> + <key>isShown</key> + <false/> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict/> +</dict> +</plist>
diff --git a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift index efa2e4b..7e3bd34 100644 --- a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift +++ b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
@@ -76,6 +76,9 @@ XCTAssert(writtenFiles.contains("\(xcodeProjectPath)/project.xcworkspace/xcuserdata/USER.xcuserdatad/WorkspaceSettings.xcsettings")) XCTAssert(writtenFiles.contains("\(xcodeProjectPath)/xcshareddata/xcschemes/test-path-to-target-target.xcscheme")) XCTAssert(writtenFiles.contains("\(xcodeProjectPath)/xcshareddata/xcschemes/test-MainTarget.xcscheme")) + + let xcp = "\(xcodeProjectPath)/xcuserdata/USER.xcuserdatad/xcschemes/xcschememanagement.plist" + XCTAssert(mockFileManager.writeOperations.keys.contains(xcp)) } catch let e { XCTFail("Unexpected exception \(e)") } @@ -315,6 +318,9 @@ let xcschemes = projectURL.appendingPathComponent("xcshareddata/xcschemes") mockFileManager.allowedDirectoryCreates.insert(xcschemes.path) + let userXcschemes = projectURL.appendingPathComponent("xcuserdata/USER.xcuserdatad/xcschemes") + mockFileManager.allowedDirectoryCreates.insert(userXcschemes.path) + let scripts = projectURL.appendingPathComponent(".tulsi/Scripts") mockFileManager.allowedDirectoryCreates.insert(scripts.path)