将纯 Swift 自定义框架导入其他 Swift 项目
Posted
技术标签:
【中文标题】将纯 Swift 自定义框架导入其他 Swift 项目【英文标题】:Importing pure Swift custom framework into other Swift project 【发布时间】:2016-05-09 05:51:30 【问题描述】:让我们,我有一个自定义的 Swift Cocoa Touch framework
,MyLog
,它有一个简单的函数叫做 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 项目的主要内容,如果未能解决你的问题,请参考以下文章