Продукт пакета Swift не найден при добавлении через зависимость Package.swift

Я пытаюсь интегрировать Sentry iOS SDK через диспетчер пакетов Swift. Они предоставляют руководство здесь, которое в основном предназначено для тех, кто интегрируется с проектом 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"]),
    ]
)

Может ли кто-нибудь предложить какое-либо понимание? Спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
224
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось разрешить зависимости и добавить import Sentry, изменив зависимость от цели на

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

Я думаю, что проблема может быть связана с тем, что пакет на самом деле называется sentry-cocoa, а не Sentry. Я не уверен, что проблема именно в этом, но использование вашего package.swift не сработало, а использование моего сработало.

Обратите внимание, что после изменения мне пришлось пересчитывать зависимости пакета и очищать папку сборки, чтобы избавиться от груза кэшированной ерунды.

Да, это сработало. Интересно, что, по словам Sentry's Package.swift, пакет называется Sentry. Однако репозиторий git называется sentry-cocoa, что, похоже, влияет на разрешение пакета...

Jacob King 22.04.2024 23:47

Другие вопросы по теме