无法从框架内访问 public 枚举

unable to access public enum from within a framework

我一直致力于开发一个框架,我决定创建自定义枚举来扩展错误协议,以便在遇到域特定错误时向主机应用程序报告。

public enum MyCustomError: Error {
    case customCase(message: String)
}

从主机应用程序我有一个响应回调,它是另一个具有关联值的枚举

public enum MyCustomResponse {
    case success
    case error(Error)
}

主机应用程序中的表单我尝试通过执行以下操作来访问错误

let responseHandler: (MyCustomResponse) -> Void = { response in

    switch response {
        case .error(let error):
            if case let MyCustomModule.MyCustomError.customCase(theErrorMessage) = error {
                print(theErrorMessage)
            }
    }
}

我得到的是一条来自编译器的消息,告诉我 MyCustomModule has no member named MyCustomError。如果 MyCustomModule. 松散,编译器会报错 Use of unresolved identifier 'MyCustomError'。我正在导入 MyCustomModuleMyCustomError 的访问级别是 public,任何关于如何解决这个问题的想法都将不胜感激。

谢谢

注意:我正在通过 cocoapods 版本 1.1.1 开发我的框架,并使用 Xcode 8.2.1,swift 版本 3.0.2,支持 iOS 版本 8.0 和以上。

生成界面

import Foundation 

public enum MyCustomError : Error { 
    case customCase(message: String) 
}

经过长时间尝试我能想到的所有小事,甚至 沙盒 新回购中的问题(检查 github.com/anuragajwani/framework_pod_enums_test ) 由于无法重现它,我结束了 re-cloning 有问题的存储库并重新应用所有更改并且它没有问题。可惜我找不到潜在的问题,但是通过将每个配置设置与沙盒项目进行比较,我放弃了所有匹配的东西。我有预感它必须与编译器有关,考虑到它有多不稳定,这不足为奇。

我遇到了完全相同的问题。在我的例子中,我只是在 Build Settings 中设置了 "Build Active Architecture Only" to "No",问题就消失了。