gpt4 book ai didi

ios - 快速构建 : warning: '--product' cannot be used with the automatic product 'ProductName' ; building the default target instead

转载 作者:行者123 更新时间:2023-12-05 05:51:37 24 4
gpt4 key购买 nike

我有一个 Package.swift list 如下:

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

import PackageDescription

let package = Package(
name: "long-package-name-ios",
defaultLocalization: "en",
platforms: [
.iOS(.v14),
.macOS(.v10_15)
],
products: [
.library(
name: "PackageName",
targets: ["PackageName"]),
.library(
name: "PackageNameImproved",
targets: ["PackageNameImproved"]),
.library(
name: "PackageNameUI",
targets: ["PackageNameUI"]),
],
dependencies: [
.package(
name: "PackageLib",
url: "ssh://apple.com/packagelib.git",
.upToNextMinor(from: "1.2.3")
)
],
targets: [
.target(
name: "PackageName",
dependencies: [
.product(name: "PackageLib", package: "PackageLib"),
],
path: "PackageName"),
.target(
name: "PackageName",
dependencies: [
"PackageName",
.product(name: "PackageLib", package: "PackageLib"),
],
path: "PackageNameImproved"),
.target(
name: "PackageNameUI",
dependencies: [
"PackageNameImproved",
],
path: "PackageNameUI")
]
)

包 list 摘要:

  • 3 个目标
  • 一个目标依赖于另一个目标
  • 只有 PackageName 兼容 macOS,其他都是 iOS-only

构建命令

为 iOS 构建 long-package-name-ios-Package(构建包内的所有目标):

swift build -Xswiftc "-sdk" -Xswiftc "$(xcrun --sdk iphonesimulator--show-sdk-path)" -Xswiftc "-target" -Xswiftc "arm64-apple-ios15.0-simulator"

[137/137] Build complete!

现在尝试为 macOS 构建 PackageName:

swift build -Xswiftc "-sdk" -Xswiftc "$(xcrun --sdk macosx--show-sdk-path)" --product "PackageName"

[1/1] Planning buildwarning: '--product' cannot be used with theautomatic product 'PackageName'; building the default target instead

然后它继续为 macOS 平台构建默认目标 long-package-name-ios-Package 显然由于无法导入而失败,例如UIKit 或任何其他仅限 iOS 的框架。

问题

如何指定只为 macOS 平台构建 PackageName?我愿意创建 Xcode 包、方案和其他不同的配置,但最终目标应该是:

  1. 仅针对 iOS 集成 long-package-name-ios-Package(所有目标)
  2. 为 macOS 集成 PackageName

最佳答案

编辑:虽然我最初的回答使错误消失了,但实际上无法将库导入插件。 (它无法编译并出现“没有这样的模块”错误。)这 seems成为预期的行为。


错误中的“自动产品”指的是PackageName没有配置库类型。如果您配置它的类型(dynamicstatic),错误就会消失并且可以构建目标:

.library(
name: "PackageName",
type: .dynamic,
targets: ["PackageName"]
)

关于ios - 快速构建 : warning: '--product' cannot be used with the automatic product 'ProductName' ; building the default target instead,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70353038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com