iOS应用程序未从框架中看到公共协议

fra*_*iis 4 frameworks protocols ios swift

我创建了静态框架并将其添加到iOS应用程序。在框架中,我创建了新的公共协议:

public protocol ProtocolName
{
    func methodName1(arg1: Int)
}
Run Code Online (Sandbox Code Playgroud)

我重建了框架,但是无法在我的应用中使用此协议。

import FrameworkName

class ClassName: ProtocolName
{
    func methodName1(arg1: Int)
}
Run Code Online (Sandbox Code Playgroud)

(类定义中的错误:使用未声明的类型'ProtocolName')

该应用程序可以查看其他协议,其他类和视图。它还会看到我的框架中的更改(我添加了一些测试打印和重建框架,以检查该应用程序是否使用了新构建的版本并且可以正常工作)。

带有协议的文件位于框架的目标成员身份中。我试图删除整个框架并再次链接,关闭并重新打开XCode,清理两个项目几次,但是没有任何效果。

我还尝试添加下一个协议-在应用程序中也无法识别(但其他较旧的协议可以识别)。

我在应用程序中检查了框架定义(在模块上单击鼠标右键,然后跳到“定义”)-没有提及新协议。

我猜想框架元数据(类和方法定义)的生成有问题,但是我找不到解决它的方法。

任何帮助或想法,将不胜感激。

fra*_*iis 6

好的,我想我可以将这个问题留给同样的问题的人(也许可以节省3-4个小时)。

解决方案非常简单:删除项目和框架的派生数据(也许删除应用程序的派生数据就足够了,但是我删除了两者,所以我不知道)。

如何在XCode中执行此操作:https//stackoverflow.com/a/39495772/5226328