1

I have framework in Swift 2.3 which I have successfully converted to Swift 3.3 and it works as expected on Xcode 8.3.3. I can even see the public protocols in it.

After I converted the project to Swift 4.1 and built it, I am unable to see the public protocols in the header file

eg:

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

Communication manager is not visible in Swift4 framework header files. I tried clearing derived data too and that did not help as well.

I have checked and tried the following links, but none of them helped

Link1 Link2 Link3

Why are the public protocols not visible?

Update:

If I change Swift language version to Swift3.3 in Xcode 9.3, then the public protocols are visible in the headers and the first line of the .h files says this

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

Does this mean that it will work fine for an app written in Swift4?

Amogh Shettigar
  • 275
  • 2
  • 3
  • 18

0 Answers0