Ios Can';t从自定义动态框架(Swift)访问类

Ios Can';t从自定义动态框架(Swift)访问类,ios,swift,frameworks,xcode6,Ios,Swift,Frameworks,Xcode6,我的测试动态iOS框架XYZFramework由一个类XYZ组成 然而,即使在宣布: import XYZFramework 我无法访问此类,任何尝试都会产生以下错误: Use of unresolved identifier 'XYZ' 如何解决此问题?找到了答案。我必须在我的类声明前面加上public修饰符。因此: class XYZ { } 成为: public class XYZ { } 而且,一如既往,破坏~/Library/Developer/Xcode/DerivedD

我的测试动态iOS框架
XYZFramework
由一个类
XYZ
组成

然而,即使在宣布:

import XYZFramework
我无法访问此类,任何尝试都会产生以下错误:

Use of unresolved identifier 'XYZ'

如何解决此问题?

找到了答案。我必须在我的类声明前面加上
public
修饰符。因此:

class XYZ {

}
成为:

public class XYZ {

}

而且,一如既往,破坏
~/Library/Developer/Xcode/DerivedData
文件夹修复了任何小问题。

如果框架的类还包含静态和实例成员函数,则还需要添加一些
公共
关键字

// set the Framework class to Public
public class FrameworkHello{  

   // set the initializer to public, otherwise you cannot invoke class
   public init() {  

   }

   // set the function to public, as it defaults to internal
   public static func world() {  
       print("hello from a static method")
   }
}
现在,您可以通过Swift代码或lldb访问此文件:

(lldb) po FrameworkHello.world()
hello from a static method

这确保了框架的符号可以在版本中访问

在我将“public”添加到所有内容后,退出Xcode,删除~/Library/Developer/Xcode/DerivedData,重新启动Xcode,错误消失了。我每次都忘记这一部分…grrrrold thread,但需要注意的是:我没有删除该文件夹,而是将方案切换到框架并运行构建,然后将方案切换回我的应用程序并运行一个构建,完成了相同的刷新。“破坏~/Library/Developer/Xcode/DerivedData”帮了我的忙,谢谢!您介意在github上发布您的测试项目吗。我正在尝试制作一个框架。我也遇到了同样的问题。类和func在我创建的单独测试项目中不可访问。