创建具有 SPM 依赖项的框架相当新鲜。因此,我创建了一个新的框架项目,添加了一些类/文件以及 SPM 依赖项(CocoaLumberjack 记录器)。框架编译良好。
当我寻找我计划嵌入到其他项目中的框架产品时,我看到它位于我的产品文件夹中。除了它之外,我还看到了 CocoaLumberjack 模块。在我的框架内部,除了 exec 文件之外没有太多内容。
当我尝试将我的框架嵌入到其他一些项目中时。没有任何内容编译,因为它说缺少 CocoaLumberjack 模块。
有谁知道如何解决这一问题?我是否错过了重要的一步或其他什么?
嗯,在导入框架本身的过程中您可能会遇到很多问题。它还取决于您是否使用框架作为二进制或源代码。我假设您使用源代码方法,因为您是框架的创建者。但是,您可以在此处检查所有方法:在这个问题中 https://stackoverflow.com/questions/51151862/how-to-add-frameworks-into-the-swift-project。让我们看一下为了在 swift 项目中成功使用具有 SPM 依赖项的框架所需实施的所有步骤。
- 正确创建 SPM 并链接所有其他 SPM 依赖项教程在这里 https://www.swiftbysundell.com/articles/managing-dependencies-using-the-swift-package-manager/。确保所有类、结构等及其相应的初始值设定项具有正确的访问级别属性。如果您计划在包外使用它们,请使用公共初始值设定项。
2)创建 SPM 包后,将其链接到框架。为了这个答案,我创建了
testFramework
并链接了我的一个自定义 SPM 包,名为VodApiPackage
。这个包还包含对另一个包的依赖BaseTvApiServicePackage
.
我还添加了TestPrinter
文件包含用于创建在我的 SPM 包中声明的错误的简单函数。此功能仅用于检查一切是否正常工作,稍后供用户使用。也宣布公开。
import Foundation
import VodApiPackage
public struct TestPrinter {
public init () {}
public func makeTest() {
let x = VodApiError.customErr(msg: "testMsg")
print(x.localizedDescription)
}
}
-
打开你的项目并链接到框架,你也可以检查这个不错的教程 https://programmingwithswift.com/create-a-swift-framework/。教程中最重要的步骤是步骤 5 和 6。拖动的位置.xcproj
进入您的项目并链接库和框架
-
确保您的库和 SPM 依赖项在项目中正确链接。检查下面的示例项目。
-
使用您的框架及其包构建和测试:
import UIKit
import testFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
testmodel()
TestPrinter().makeTest()
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)