通过 Package.swift 依赖项添加时找不到 Swift 包产品

问题描述 投票:0回答:1

我正在尝试通过 Swift Package Manager 集成 Sentry iOS SDK。他们提供了一个指南here,主要是为那些与 Xcode 项目集成的人量身定制的。

我正在与一个独立的 Swift 库包集成,它将依赖 Sentry 包作为依赖项。因此,我的包依赖项在我的库的

Package.swift
文件中定义。将 Sentry 包添加为依赖项时,包已解析,但产品未解析。该包显示在侧边栏中,我可以查看它的文件,包括它的
Package.swift
,所以它肯定正在被解析/下载。

如果我打开一个新的 Xcode 项目并通过“添加包依赖项”添加包,它也可以与已解决的产品一起正常工作,可以毫无问题地导入和使用这些产品,因此问题似乎专门与使用

Package.swift 
基于依赖管理。

哨兵

Package.swift
这里。我图书馆的
Package.swift
如下。据我和我的同事所知,一切都已正确完成,我们认为这里可能存在 SPM 错误。

// swift-tools-version: 5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "MyPackage",
    platforms: [
        .iOS(.v15)
    ],
    products: [
        // Products define the executables and libraries a package produces, making them visible to other packages.
        .library(
            name: "MyPackage",
            targets: ["MyPackage"]),
    ],
    dependencies: [
        .package(url: "https://github.com/getsentry/sentry-cocoa", from: "8.24.0")
    ],
    targets: [
        // Targets are the basic building blocks of a package, defining a module or a test suite.
        // Targets can depend on other targets in this package and products from dependencies.
        .target(
            name: "MyPackage",
            dependencies: ["Sentry"]),
        .testTarget(
            name: "MyPackageTests",
            dependencies: ["MyPackage"]),
    ]
)

任何人都可以提供任何见解吗?谢谢。

ios swift xcode sentry swift-package-manager
1个回答
0
投票

我能够通过将对目标的依赖关系更改为

来获取要解析的依赖项并添加
import Sentry

.target(
    name: "MyPackage",
    dependencies: [.product(name: "Sentry", package: "sentry-cocoa")]),

我认为问题可能与该包实际上被称为

sentry-cocoa
,而不是
Sentry
有关。我不确定这是否正是问题所在,但使用你的 package.swift 不起作用,但使用我的却起作用。

请注意,更改后,我必须重新计算包依赖项并清理构建文件夹以摆脱缓存的废话负载。

© www.soinside.com 2019 - 2024. All rights reserved.