将纯 Swift 自定义框架导入其他 Swift 项目

Posted

技术标签:

【中文标题】将纯 Swift 自定义框架导入其他 Swift 项目【英文标题】:Importing pure Swift custom framework into other Swift project 【发布时间】:2016-05-09 05:51:30 【问题描述】:

让我们,我有一个自定义的 Swift Cocoa Touch frameworkMyLog,它有一个简单的函数叫做 printLog()。我在不同的工作区/位置有另一个名为 HelloWorld 的 Swift 项目。现在我需要将自定义框架MyLog导入到项目HelloWorld中,这样我就可以调用MyLog.printLog()了。

Project -> Targets -> Build Phases -> Link Binary With Libraries

不在列表中显示我的自定义库。此外,我不只是想链接我的自定义库,而是想作为独立库单独导入,以便 MyLog 中的运行更改不会反映在 HelloWorld 中。

注意:我在 android 中添加custom_library.jar 库。

【问题讨论】:

【参考方案1】:

最后我通过以下步骤得到了解决方案,

步骤

    创建时将您的自定义MyLog 项目标记为Framework 实施func printLog并构建项目(成功构建将创建一个/Product/MyLog.framework文件) 使用 Finder 将 /Product/Mylog.framework 文件复制到 HelloWorld 项目目录中 关注HelloWorld Project -> Targets -> Build Phases -> Link Binary With Libraries -> + -> Add Other(从HelloWorld/目录中选择MyLog.framework) 关注HelloWorld Project -> Targets -> Build Phases -> Embed Frameworks -> + -> Other(从HelloWorld/目录中选择MyLog.framework) 构建HelloWorld 并享受!

更新 1

    如果找不到路径, HelloWorld Project -> Targets -> Build Phases -> Embed Frameworks 请检查,HelloWorld Project -> Targets -> General -> Embedded Binaries 在更高版本的 xcode 中,它将执行与第 5 步相同的操作。

【讨论】:

我在项目中没有看到第 5 步 ... :( @Alix 这是以前的 Xcode 版本,你会在常规选项卡下得到Embedded Binaries,它会做同样的事情。参考:***.com/a/37690368/1084174 我的情况是在同一个工作区中生成框架。所以我不需要在 bridging-header.h 中添加任何内容。我可以直接导入,对吗? 有效,但我有一个 objc 库,将它添加为无法找到它的桥接头的正确位置是什么?非常感谢您更新答案。 这为我指明了正确的方向。我能够解决我遇到的问题。荣誉【参考方案2】:

将框架添加到“嵌入式二进制文件”(目标 > 常规 > 嵌入式二进制文件)然后运行

【讨论】:

以上是关于将纯 Swift 自定义框架导入其他 Swift 项目的主要内容,如果未能解决你的问题,请参考以下文章

在自定义 Swift 框架中的 Objective-C 文件上使用 Swift

iOS Swift中的UIButton [重复]

在另一个 Swift 项目中使用自定义 Swift 框架

将纯字符串转换为 JSON 并返回 Swift

用于自定义 swift 框架的 Sqlite

swift的基本语法