本質上就是主題所說的(我是 Swift 生態系統的新手)。您可以在此處下載完整的軟體包:
https://drive.google.com/file/d/1dqjJACKX1cIVUk-cwxZxOEd8taKAU1i3/view?usp=share_link
我的包裹很簡單:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "McuMgr.Bindings.iOS",
platforms: [.iOS(.v9), .macOS(.v10_13)],
products: [
.library(
name: "McuMgr.Bindings.iOS",
targets: ["McuMgr.Bindings.iOS"]
),
],
dependencies: [
.package(
name: "McuMgr",
url: "https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git",
.exact("0.13.0")
),
],
targets: [
.target(
name: "McuMgr.Bindings.iOS",
path: "Source",
exclude:["Info.plist"]
)
]
)
但是“swift build”抱怨依賴項“ios-nrf-connect-device-manager”沒有被任何目標使用,然后編譯失敗
% swift build
Fetching https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git from cache
Fetching https://github.com/unrelentingtech/SwiftCBOR.git from cache
Fetched https://github.com/unrelentingtech/SwiftCBOR.git (0.48s)
Fetched https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git (0.48s)
Computing version for https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git
Computed https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git at 0.13.0 (0.49s)
Computing version for https://github.com/unrelentingtech/SwiftCBOR.git
Computed https://github.com/unrelentingtech/SwiftCBOR.git at 0.4.4 (0.46s)
Creating working copy for https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git
Working copy of https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git resolved at 0.13.0
Creating working copy for https://github.com/unrelentingtech/SwiftCBOR.git
Working copy of https://github.com/unrelentingtech/SwiftCBOR.git resolved at 0.4.4
warning: dependency 'ios-nrf-connect-device-manager' is not used by any target
Building for debugging...
/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/module.modulemap:2:12: error: header '/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/McuManager-Swift.h' not found
header "/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/McuManager-Swift.h"
^
/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/Source/iOSFirmwareUpgrader.swift:1:8: error: could not build Objective-C module 'McuManager'
import McuManager
^
/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/module.modulemap:2:12: error: header '/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/McuManager-Swift.h' not found
header "/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/.build/arm64-apple-macosx/debug/McuManager.build/McuManager-Swift.h"
^
/Users/acme/Repos/cmps/mcumgr.dev/bindings/Laerdal.McuMgr.Bindings.iOS/Source/iOSFirmwareUpgrader.swift:1:8: error: could not build Objective-C module 'McuManager'
import McuManager
^
是什么賦予了?
uj5u.com熱心網友回復:
在你的代碼中你有import McuManager但你的 Package.swift 沒有定義一個名為McuManager.
您需要確保包名稱匹配,并明確添加McuManager為目標的依賴項。
更新你Package.swift的
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "Laerdal.McuMgr.Bindings.iOS",
platforms: [.iOS(.v9), .macOS(.v10_13)],
products: [
.library(
name: "Laerdal.McuMgr.Bindings.iOS",
targets: ["Laerdal.McuMgr.Bindings.iOS"]
),
],
dependencies: [
.package(
name: "McuManager", // << updated package name
url: "https://github.com/Laerdal/IOS-nRF-Connect-Device-Manager.git",
.exact("0.13.0")
),
],
targets: [
.target(
name: "Laerdal.McuMgr.Bindings.iOS",
dependencies: ["McuManager"], // << added depedency
path: "Source",
exclude:["Info.plist"]
)
]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536531.html
