#ios #swift #cocoapods #swift-package-manager #podfile
Вопрос:
Я разработал простое Swift Package
приложение с UIView
, чтобы использовать его в большем количестве проектов.
Мне нужно UIView
было использовать a UIImageView
, который получает изображение от a URL
, и я хочу его использовать SDWebImage
.
Я добавил в свою Swift Package Package.swift
SDWebImage
зависимость as, и она создала Package.resolved
корневой каталог, а также добавила Package dependency
SDWebImage
:
// swift-tools-version:5.5 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "MyPacket", products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. .library(name: "MyPacket", targets: ["MyPacket"]) ], dependencies: [ // Dependencies declare other packages that this package depends on. .package(name: "SDWebImage", url: "https://github.com/SDWebImage/SDWebImage.git", .upToNextMajor(from: "5.0.0")) ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages this package depends on. .target( name: "MyPacket", dependencies: [ .product(name: "SDWebImage", package: "SDWebImage")] ) ] )
До этого момента все работало хорошо.
В моем main project
у меня также есть SDWebImage
как pod
установленный, а теперь main project
рядом MyPacket
с Package Dependencies
ним он также отображается SDWebImage
как зависимость, что означает, что SDWebImage
он находится как в Podfile
, так и Package Dependencies
.
Приложение работает, но оно выдает это предупреждение для каждого SDWebImage method
:
objc[72670]: Class SDWeakProxy is implemented in both /Users/user/Library/Developer/CoreSimulator/Devices/81EA832E-6ED3-4560-8994-298CB8A00D2A/data/Containers/Bundle/Application/B01EFC62-3996-473D-9F8C-6FCCF80BF077/MyMaiProject.app/Frameworks/SDWebImage.framework/SDWebImage (0x10c5cd370) and /Users/use/Library/Developer/CoreSimulator/Devices/81EA832E-6ED3-4560-8994-298CB8A00D2A/data/Containers/Bundle/Application/B01EFC62-3996-473D-9F8C-6FCCF80BF077/MyMainProject.app/MyMainProject (0x10139aaa0). One of the two will be used. Which one is undefined.
Вопрос
Есть ли какой-либо способ настроить Podfile
, если framework
он уже Package Manager
включен, чтобы не инициализировать его или удалить SDWebImage
из MainProject Package Dependencies
него ?
Или posibile использовать то SDWebImage
, что установлено в моем MainProject
с помощью модулей, в моем Packet
, с которым установлено Package Manager
?
Комментарии:
1. Удалить
SDWebImage
изpodfile
и добавить сSPM
2. но если я добавлю
SDWebImage
сSPM
, можно ли использовать вMy Personal Package
сimport SDWebImage
и так далее?3. Да, добавьте
SPM
туда, где вам это нужно. В вашем случае его проект и библиотека