无法通过框架访问公共swift类

时间:2016-05-10 12:38:38

标签: ios objective-c xcode swift xcode7

Project structure

我创建了一个项目并将其导入到此框架中。当我将此框架加载到演示应用程序时,我能够访问MyTest文件中的公共类MyTest.swift,但无法访问MessagesViewController.swift内的公共类。我错过了什么吗?我们不能通过框架以这种方式访问​​项目中的文件吗?

4 个答案:

答案 0 :(得分:2)

您是否在原始项目中向目标中添加了MessagesViewController.swift

要检查它只是打开原始项目,请选择MessagesViewController.swift并查看右侧边栏(目标成员资格部分)。

答案 1 :(得分:2)

重构项目空间,以便在框架内没有应用程序,然后处理应用程序和框架之间的链接文件。

  1. 创建一个xcworkspace文件以包含所有子项目。有关详细信息,请查看Xcode Workspace文档
  2. 中的Xcode Concepts部分

    enter image description here

    1. 打开工作区文件,通过将xcodeproj文件拖到"项目导航"添加框架和应用程序项目。面板。将文件添加为Xcode时要小心,将一个项目放在另一个项目中,你不会想要这个。 enter image description here

    2. 构建框架,然后将其链接到应用程序项目。这也将使您的应用程序项目的所有框架文件都可用,只要它们是公开的(有关详细信息,请参见下文)。在编辑器视图中导航到FireChat-Swift应用程序项目目标,然后从框架项目打开产品目录,并将框架文件拖到常规选项卡的嵌入式二进制文件部分。

    3. enter image description here

      1. 现在您的框架已与您的应用项目相关联。您需要在应用的源代码中导入框架。 enter image description here

      2. 将新文件添加到您的框架中并记住,如果您需要在框架之外使用它们(即通过您的应用程序),则需要将其公开。

答案 2 :(得分:2)

我遇到了这个问题,我通过查看框架并将目标成员资格添加到TestsUITests来修复了我的问题:

enter image description here

奇怪的修复程序,但我想它能奏效! ‍♂️

答案 3 :(得分:0)

这也可能是Xcode中的错误的一部分,尽管我不确定是什么原因导致的-可能会将文件从另一个项目拖到您的库中。我只是通过关闭并重新启动Xcode来解决此问题,然后清理构建文件夹(按住Alt,然后从Product菜单中选择选项)。