Невозможно увидеть общедоступный протокол из фреймворка после преобразования в Swift 4.1

У меня есть фреймворк в Swift 2.3, который я успешно преобразовал в Swift 3.3, и он работает, как и ожидалось, в Xcode 8.3.3. Я даже вижу в нем общедоступные протоколы.

После того, как я преобразовал проект в Swift 4.1 и построил его, я не могу видеть общедоступные протоколы в заголовочном файле.

eg:

public class CommunicationManager: NSObject {
       public static var sharedInstance = CommunicationManager()
}

Коммуникационный менеджер не отображается в файлах заголовков платформы Swift4. Я также пытался очистить производные данные, и это тоже не помогло.

Я проверил и попробовал следующие ссылки, но ни одна из них не помогла

Link1 Link2 Link3

Почему публичные протоколы не видны?

Обновление:

Если я изменю языковую версию Swift на Swift3.3 в Xcode 9.3, общедоступные протоколы будут видны в заголовках, а первая строка файлов .h говорит об этом

// Generated by Apple Swift version 4.1 effective-3.3 (swiftlang-902.0.48 clang-902.0.37.1)

Означает ли это, что приложение, написанное на Swift4, будет работать нормально?


person Amogh Shettigar    schedule 19.04.2018    source источник
comment
Я не знаю, сработает это или нет, но попробуйте open   -  person Prashant Tukadiya    schedule 19.04.2018
comment
после преобразования в swift 3 xocde сделал все public в open, что вызвало у меня ту же проблему, не мог видеть мои общедоступные протоколы. После того, как все open вернулись к public, они снова стали видны в заголовочных файлах.   -  person Amogh Shettigar    schedule 19.04.2018