【问题标题】:Swift: using private frameworkSwift:使用私有框架
【发布时间】:2015-05-19 18:44:52
【问题描述】:

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

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

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

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

import frameworkName

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

var x : className?

我收到以下错误:

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

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

【问题讨论】:

  • 课程是否标记为公开?你必须有类似 public class className {...}
  • 您解决了这个问题吗?
  • 其实没有,不过我没花时间在上面
  • 我已经添加了答案。这肯定会。请检查
  • 你可以做一个胖库,可以看这个链接:stackoverflow.com/a/54977145/3992606

标签: ios swift frameworks


【解决方案1】:

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

首先,确保您的框架在正确的设备上使用。也就是说框架只能在对应的设备上使用(模拟器,设备和Mac之一)。也就是说,如果框架A是在模拟器上搭建的,那么项目导入框架A只能通过编译,成功搭建在模拟器上。

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 从他的描述来看,听起来他不是在同一个工作区工作,用于框架和项目。
    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 2015-04-29
    • 2017-10-26
    • 1970-01-01
    • 2016-05-27
    • 2013-11-29
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多