【问题标题】:Create Swift framework (revisited)创建 Swift 框架(重新访问)
【发布时间】:2017-02-18 23:31:03
【问题描述】:

我已阅读 Create and import swift framework(以及更多内容),但它不起作用。这是我所做的:我创建了一个香草框架并添加了一个简单的 Test.swift。

这个构建没有问题,我猜这应该是一个包含我的测试类的有效框架。

现在我将这个框架导入另一个原版应用程序:

但尝试访问我的框架失败:

【问题讨论】:

    标签: swift xcode frameworks


    【解决方案1】:

    根据您的问题提供的信息,“没有这样的模块”可能意味着您没有链接到框架,或者框架不在框架搜索路径中。此外,看起来您已将构建的框架直接拖到依赖项目中,因为我没有看到 FW.framework 作为工作区中的顶级项目或项目依赖项包含的项目(即您有当您打开 FrameworkUse 时,未将 FW.xcodeproj 拖到项目导航器中)。有几种方法可以解决这个问题:

    1. FW.xcodeproj 拖到FrameworkUse 项目下的项目导航器中(这会将FW.xcodeproj 作为子项目添加到FrameworkUse 项目中)。然后转到构建设置,a) 将 FW.framework 目标作为目标依赖项添加到 FrameworkUse 目标,b) 将框架(来自 FW.xcodeproj 下的 Products 组)添加为嵌入式二进制文件。
    2. 当您打开 FrameworkUse 项目时,将 FW.xcodeproj 拖到项目导航器的顶层。 Xcode 会询问您是否要创建一个新的工作区(除非您已经打开了一个工作区,在这种情况下 FW.xcodeproj 将被添加到工作区)。与上述选项类似,转到构建设置并a)将FW.framework目标作为目标依赖项添加到FrameworkUse目标,b)将框架(来自FW.xcodeproj下的产品组)添加为嵌入式二进制文件.
    3. 如果您真的想依赖于已构建的 FW.framework 而不是使用选项 1 或 2 对其表达构建依赖关系,您需要 a) 将框架添加为嵌入式二进制文件,并且 b) 转到构建设置并添加包含 FW.framework 的目录(您可以通过在 Finder 中将其打开到“框架搜索路径”中来找到其位置,例如 "$(PROJECT_DIR)/Frameworks" 如果项目目录下的 Frameworks 是您放置构建框架的位置)。

    【讨论】:

    • 我没有用 3。Link with Binary" 显示我的框架有点疯狂,但实际上还需要添加搜索路径。一旦你知道了,这很容易。但基本上这不是我所说的用户友好。谢谢!
    • 是的,它也烧了我很多次。在这种情况下,添加链接阶段后错误消息根本没有改变,这尤其无益。
    • 此外,您需要将框架添加到常规/嵌入式二进制文件,否则您会收到“dyld: Library not loaded”错误。
    • 是的,我的回答中确实包含了这一点。另一种选择是创建一个“复制阶段”,将框架放在二进制文件中的框架下(这基本上就是在几个 Xcode 版本中引入的“嵌入式二进制文件”所做的事情)。
    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多