¿Cómo hacer que un submódulo marco Swift sea realmente privado?

He encontrado otra pregunta que trae más detalles sobre el problema y las posibles soluciones. Parece que hay un error conocido que está sujeto a futuras mejoras.

Clases de Objective C dentro de un marco dinámico basado en iOS Swift

Estoy desarrollando un marco en Swift y estoy usando un código Objective-C dentro del marco. Hasta ahora, mi mapa de módulo se ve así:

framework module MyModule {
    umbrella header "MyModule-umbrella.h"

    export *

    explicit module Private {
        header "MyTools.h"
    }
}

Mi preocupación es que todas las API deMyTools.h son visibles desde fuera del marco: por ejemplo, si instala el marco utilizando Cocoapods, entoncesimport MyModule en su aplicación (no MyModule.Private), puede accederMyTools.h lo cual no es deseable y redundante. ¿Hay alguna manera de hacer que MyTools sea invisible desde fuera del marco?

PD. Utilizo Cocoapods para distribuir el marco, aquí está mi podspec (la parte más importante):

s.module_map    = 'Pod/MyModule.modulemap'
s.frameworks    = 'CoreData', 'CoreTelephony', 'SystemConfiguration'
s.resources     = 'Pod/Classes/MessageStorage/*.xcdatamodeld'
s.public_header_files = 'Pod/Classes/**/*.h'
s.private_header_files = 'Pod/Classes/MyTools/**/*.h'
s.source_files  = 'Pod/Classes/**/*.{h,m,swift}'

PSS Mi encabezado paraguas no importaMyTools.h

PSSS Solo intenté excluir el encabezado del módulo principal:

framework module MyModule {
    umbrella header "MyModule-umbrella.h"

    export *
    exclude header "MyTools.h"

    explicit module Private {
        header "MyTools.h"
    }
}

Sin suerte.

Respuestas a la pregunta(2)

Su respuesta a la pregunta