         // create variant groups of the base localisation first
         var baseLocalisationVariantGroups: [PBXVariantGroup] = []
 
-        let sourceExcludeFilePaths: Set<Path> = Set(
-            getSourceExcludes(targetSource: targetSource)
-        )
-
-        func isNotExcludeFilePath(_ path: Path) -> Bool {
-            return !path.lastComponent.contains(".DS_Store")
-                && !sourceExcludeFilePaths.contains(path)
-        }
-
         if let baseLocalisedDirectory = baseLocalisedDirectory {
             for filePath in try baseLocalisedDirectory.children()
-                .filter(isNotExcludeFilePath(_:))
+                .filter(isIncludedPath)
                 .sorted() {
                 let variantGroup = getVariantGroup(path: filePath, inPath: path)
                 groupChildren.append(variantGroup.reference)

        for localisedDirectory in localisedDirectories {
            let localisationName = localisedDirectory.lastComponentWithoutExtension
            for filePath in try localisedDirectory.children()
                .filter(isNotExcludeFilePath(_:))
                .sorted { $0.lastComponent < $1.lastComponent } {
                // find base localisation variant group
                // ex: Foo.strings will be added to Foo.strings or Foo.storyboard variant group


    private let spec: ProjectSpec
    var addObjectClosure: (String, PBXObject) -> String
    var targetSourceExcludePaths: Set<Path> = []
    var defaultExcludedFiles = [
        ".DS_Store"
    ]

    var targetName: String = ""

