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
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?