我用Xcode构建了一个iOS Swift框架。
编写代码后,我构建了项目并将.framework文件放在Products文件夹中进行测试。
测试框架已打开一个新的应用程序并拖放以前构建的.framework文件,并将其添加到我的应用程序项目的嵌入式二进制文件列表中。
要将它导入我的ViewController.swift类,我写道:
import frameworkName
直到这里没问题,这意味着项目会看到框架。 当我尝试在框架内使用公共类时:
var x : className?
我收到以下错误:
'className' is unavailable: cannot find Swift declaration for this class
这是什么意思?有什么问题?
答案 0 :(得分:1)
当您从工作区引用products目录中的框架时,请确保该位置是“Built Products”,文件名只是框架名称,没有任何其他路径组件。
如果您引用的是不在工作区中的框架,我建议您使用Carthage而不是将其直接复制到您的存储库中。这将使版本控制变得更加容易,并确保它为模拟器和设备正确构建。
答案 1 :(得分:0)
对于实际的自定义框架,你真的需要做很多事情。
首先,确保在正确的设备上使用ur框架。这就是说框架只能用在相应的设备上(模拟器,设备和Mac之一)。换句话说,如果框架A建立在模拟器上,项目导入框架A只能通过编译并在模拟器上成功构建。
P.S。如果需要通用版本,-lipo命令是你需要进一步探索的。
其次,在实现ur框架时,确保所有要在外部使用的类,方法和变量都以Public
开头。
第三,检查你的项目设置Embedded Binaries
和linked Frameworks and Libraries
是否包含你的框架。
答案 2 :(得分:-1)
如果你用' lipo'工具,不要这样做。
它与分离的框架一起工作正常。
我必须找到除lipo之外的另一个二元组合工具