Swift:使用私有框架

时间:2015-03-17 11:00:23

标签: ios swift frameworks

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

编写代码后,我构建了项目并将.framework文件放在Products文件夹中进行测试。

测试框架已打开一个新的应用程序并拖放以前构建的.framework文件,并将其添加到我的应用程序项目的嵌入式二进制文件列表中。

要将它导入我的ViewController.swift类,我写道:

import frameworkName

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

var x : className?

我收到以下错误:

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

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

3 个答案:

答案 0 :(得分:1)

当您从工作区引用products目录中的框架时,请确保该位置是“Built Products”,文件名只是框架名称,没有任何其他路径组件。

如果您引用的是不在工作区中的框架,我建议您使用Carthage而不是将其直接复制到您的存储库中。这将使版本控制变得更加容易,并确保它为模拟器和设备正确构建。

答案 1 :(得分:0)

对于实际的自定义框架,你真的需要做很多事情。

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

P.S。如果需要通用版本,-lipo命令是你需要进一步探索的。

其次,在实现ur框架时,确保所有要在外部使用的类,方法和变量都以Public开头。

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

答案 2 :(得分:-1)

如果你用' lipo'工具,不要这样做。

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

我必须找到除lipo之外的另一个二元组合工具