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 Binaries
和linked Frameworks and Libraries
确实包含你的框架。
如果你用“lipo”工具创build了胖二进制文件,不要这样做。
它与分离的框架正常工作。
我必须find另外一个二元组合工具,而不是lipo