添加对 Swift 包管理器的支持无法正确构建
Posted
技术标签:
【中文标题】添加对 Swift 包管理器的支持无法正确构建【英文标题】:Adding support for Swift Package Manager doesn't build correctly 【发布时间】:2021-08-20 19:19:06 【问题描述】:我正在尝试添加对 Swift 包管理器的支持,但遇到了障碍。我创建了Package.swift
文件,提交了它,并尝试将包添加到示例应用程序中。但我在MyLibrary_MyLibrary.bundle: bundle format unrecognized, invalid, or unsuitable. Command CodeSign failed with a nonzero exit code
周围遇到错误。
我注意到在构建 DerivedData 构建文件夹中的示例应用程序时,我的包的唯一文件是 libraryName_MyLibrary.bundle
文件,它不包含 .swiftmodule
文件夹,并认为这会导致问题。为什么在构建时不包含它?
库的Package.swift文件
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyLibrary",
defaultLocalization: "en",
platforms: [.ios(.v10), .macOS("10.11"), .tvOS(.v9)],
products: [
.library(
name: "MyLibrary",
targets: ["MyLibrary"]),
],
dependencies: [
.package(url: "https://github.com/dependency1/dependency1", .exact("1.0.0")),
.package(url: "https://github.com/dependency2/dependency2", .exact("1.0.0")),
.package(url: "https://github.com/dependency3/dependency3", .exact("1.0.0")),
],
targets: [
.target(
name: "MyLibrary",
dependencies: ["Dependency1", "Dependency2", "Dependency3"],
path: "./my-library/",
exclude: ["Info.plist"]
),
.testTarget(
name: "my-library-swiftTests",
dependencies: ["MyLibrary"],
path: "./my-library-swiftTests/",
exclude: ["Info.plist"],
resources: [
.copy("Fixtures")
]
)
]
)
【问题讨论】:
【参考方案1】:我在尝试将资源目录添加到测试目标时收到此错误。我正在使用.copy("MyResourceFolder")
。将其更改为复制每个单独的资源为我明确修复了此问题,例如:
.copy("MyResourceFolder/test1.json"),
.copy("MyResourceFolder/test2.json"),
【讨论】:
以上是关于添加对 Swift 包管理器的支持无法正确构建的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 包管理器中添加 Apollo 的代码生成构建脚本时出错