Я создаю фреймворк Swift, который зависит от другого фреймворка Objective C (поэтому проект содержит заголовочный файл моста). Когда я открываю автоматически сгенерированный файл ProductName-Swift.h внутри заголовков моей структуры, я вижу классы, которые я не хотел бы раскрывать (с внутренним модификатором). Согласно документам Apple, это законно:
По умолчанию сгенерированный заголовок содержит интерфейсы для объявлений Swift, помеченные модификатором public или open. Если у вашего целевого приложения есть соединительный заголовок Objective-C, сгенерированный заголовок также включает интерфейсы, помеченные модификатором internal.
Но почему это происходит? Может кто-нибудь объяснить мне, пожалуйста? Согласно моей логике, если я решу сделать какой-то код внутренним, его нельзя использовать за пределами моего фреймворка и не следует показывать в заголовке.
В любом случае, я могу написать сценарий bash, который удалит внутренние классы и функции из ProductName-Swift.h после сборки, но я не уверен, что это нормально. Будут ли у пользователя какие-либо проблемы при использовании моей структуры Swift с «фиксированным» ProductName-Swift.h, например, внутри его проекта Objective C?