Swift:使用私有框架

我用Xcode构build了一个iOS Swift框架。

在编写代码之后,我已经构build了项目,并将Products文件夹中的.framework文件作为testing对象。

为了testing这个框架,我们打开了一个新的应用程序,并拖放先前构build的.framework文件,并将其添加到我的应用程序项目的embedded式二进制文件列表中。

要将其导入到ViewController.swift类中,我写道:

import frameworkName 

没有问题,直到这里,这意味着项目看到的框架。 当我尝试在框架内使用公共类时:

 var x : className? 

我得到以下错误:

 'className' is unavailable: cannot find Swift declaration for this class 

这是什么意思? 问题是什么?

当您从工作区引用产品目录中的框架时,请确保该位置是“Built Products”,文件名只是框架名称,不包含任何其他path组件。

如果你正在引用一个不在你的工作区的框架,我会推荐使用Carthage而不是直接把它拷贝到你的仓库中。 这将使版本化变得更容易,并且确保模拟器和设备的构build都是正确的。

要实现一个自定义的框架,你必须做很多事情。

首先,确保你的框架在正确的设备上使用。 这就是说,框架只能用于相应的设备(模拟器,设备和Mac之一)。 换句话说,如果框架Abuild立在模拟器上,项目导入框架A只能通过编译并成功build立在模拟器上。

PS如果普遍版本需要,-lipo命令是你需要进一步探索的。

其次,在实现你的框架,确保所有的类,方法和variables你想使用外部开始与Public

第三,检查你的项目设置Embedded Binarieslinked Frameworks and Libraries确实包含你的框架。

如果你用“lipo”工具创build了胖二进制文件,不要这样做。

它与分离的框架正常工作。

我必须find另外一个二元组合工具,而不是lipo