将 Swift 包添加到自定义框架
Add Swift Package to a custom framework
对创建具有 SPM 依赖项的框架还很陌生。所以我创建了一个新的框架项目,添加了一些我的 classes/files 以及 SPM 依赖项(CocoaLumberjack 记录器)。框架编译正常。
当我查找计划嵌入到其他项目中的框架产品时,我发现它在我的 Products 文件夹中。除了它,我还看到了 CocoaLumberjack 模块。在我的框架内,除了 exec 文件之外没有太多内容。
当我尝试将我的框架嵌入到其他一些项目中时。没有编译,因为它说缺少 CocoaLumberjack 模块。
有谁知道如何解决这个问题?我是否错过了重要的一步或其他事情?
嗯,在导入框架本身的过程中,您可能会遇到很多问题。它还取决于您是将框架用作二进制文件还是源代码。我假设您使用的是源代码方法,因为您是框架的创建者。但是,您可以在此处检查所有方法:in this SO question。让我们看看您需要实施的所有步骤,以便在您的 swift 项目中成功使用具有 SPM 依赖项的框架。
- 正确创建 SPM 以及 link 所有额外的 SPM 依赖项 tutorial here。确保所有 类、结构等及其相应的初始值设定项具有正确的访问级别 属性。如果您打算在包外使用它们,请使用 public 初始化程序。
2) 一旦你创建了你的 SPM 包,link 它到框架。为了这个答案,我创建了
testFramework
并 linked 我的自定义 SPM 包之一 VodApiPackage
。这个包还包含对另一个 BaseTvApiServicePackage
. 的依赖
我还添加了 TestPrinter
文件,其中包含用于创建在我的 SPM 包中声明的错误的简单函数。此功能服务器仅用于检查一切是否正常工作,稍后将供用户使用。它也声明为 public.
import Foundation
import VodApiPackage
public struct TestPrinter {
public init () {}
public func makeTest() {
let x = VodApiError.customErr(msg: "testMsg")
print(x.localizedDescription)
}
}
打开你的项目,把link做成framework,你也可以勾选这个nice tutorial。教程中最重要的一步是第 5 步和第 6 步。将 .xcproj
拖到项目和 link 库和框架中的位置
确保您的库和 SPM 依赖项在您的项目中正确 linked。检查下面的示例项目。
使用您的框架及其包构建和测试:
import UIKit
import testFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
testmodel()
TestPrinter().makeTest()
}
}
对创建具有 SPM 依赖项的框架还很陌生。所以我创建了一个新的框架项目,添加了一些我的 classes/files 以及 SPM 依赖项(CocoaLumberjack 记录器)。框架编译正常。
当我查找计划嵌入到其他项目中的框架产品时,我发现它在我的 Products 文件夹中。除了它,我还看到了 CocoaLumberjack 模块。在我的框架内,除了 exec 文件之外没有太多内容。
当我尝试将我的框架嵌入到其他一些项目中时。没有编译,因为它说缺少 CocoaLumberjack 模块。
有谁知道如何解决这个问题?我是否错过了重要的一步或其他事情?
嗯,在导入框架本身的过程中,您可能会遇到很多问题。它还取决于您是将框架用作二进制文件还是源代码。我假设您使用的是源代码方法,因为您是框架的创建者。但是,您可以在此处检查所有方法:in this SO question。让我们看看您需要实施的所有步骤,以便在您的 swift 项目中成功使用具有 SPM 依赖项的框架。
- 正确创建 SPM 以及 link 所有额外的 SPM 依赖项 tutorial here。确保所有 类、结构等及其相应的初始值设定项具有正确的访问级别 属性。如果您打算在包外使用它们,请使用 public 初始化程序。
2) 一旦你创建了你的 SPM 包,link 它到框架。为了这个答案,我创建了
testFramework
并 linked 我的自定义 SPM 包之一VodApiPackage
。这个包还包含对另一个BaseTvApiServicePackage
. 的依赖
我还添加了 TestPrinter
文件,其中包含用于创建在我的 SPM 包中声明的错误的简单函数。此功能服务器仅用于检查一切是否正常工作,稍后将供用户使用。它也声明为 public.
import Foundation
import VodApiPackage
public struct TestPrinter {
public init () {}
public func makeTest() {
let x = VodApiError.customErr(msg: "testMsg")
print(x.localizedDescription)
}
}
打开你的项目,把link做成framework,你也可以勾选这个nice tutorial。教程中最重要的一步是第 5 步和第 6 步。将
.xcproj
拖到项目和 link 库和框架中的位置确保您的库和 SPM 依赖项在您的项目中正确 linked。检查下面的示例项目。
使用您的框架及其包构建和测试:
import UIKit import testFramework class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() testmodel() TestPrinter().makeTest() } }