Swift 包管理器的捆绑包 ID 问题

Chr*_*all 3 swift swift-package-manager

我很确定 SPM 有能力解决这个问题,但我很难找到它。我很确定“我没有坚持正确”。

我对 SPM 还很陌生,并且仍然在其语法和方法上苦苦挣扎。

也许需要做的就是有人将我引导到适当的 PackageDescription 文档(我似乎找不到)。

我正在将我开发的应用程序切换为对我也编写的一些库使用 SPM。它一直在使用 Carthage,并且库被添加为简单的源文件(它们都是单源文件依赖项)。

一切都很好......除了我的应用商店上传被拒绝。

它不喜欢嵌入式库的捆绑 ID。它们的项目名称中有下划线,我应该用破折号替换它们。

这些库(这个这个这个)并不是真正设计为作为库提供的。它们实际上是单一源文件。看起来 SPM 将它们构建到一个库中,但我并没有真正为构建提供 Info.plist。

谁能指导我如何控制捆绑包 ID,同时保持模块名称相同?

作为记录,以下是我收到的错误:上传错误日志

Chr*_*all 7

好的。我想到了。

首先,SPM 的文档...还有一些不足之处。我必须通过反复试验(很多错误)来找出这一点。

在 Package.swift 文件中,我有这个(对于我的依赖项之一):

// swift-tools-version:5.2

import PackageDescription

let package = Package(
    name: "RVS_Generic_Swift_Toolbox",
    products: [
        .library(
            name: "RVS_Generic_Swift_Toolbox",
            type: .dynamic,
            targets: ["RVS_Generic_Swift_Toolbox"]),
    ],
    targets: [
        .target(
            name: "RVS_Generic_Swift_Toolbox",
            path: "./src")
    ]
)
Run Code Online (Sandbox Code Playgroud)

显然,SPM 使用 .library.name 属性作为 BundleID。如果我改变它,就像这样:

// swift-tools-version:5.2

import PackageDescription

let package = Package(
    name: "RVS_Generic_Swift_Toolbox",
    products: [
        .library(
            name: "RVS-Generic-Swift-Toolbox",
            type: .dynamic,
            targets: ["RVS_Generic_Swift_Toolbox"]),
    ],
    targets: [
        .target(
            name: "RVS_Generic_Swift_Toolbox",
            path: "./src")
    ]
)
Run Code Online (Sandbox Code Playgroud)

然后,它将允许上传,并且我仍然可以执行import RVS_Generic_Swift_Toolbox.

此外,还有一个糟糕的缓存问题。我必须删除所有内容以确保加载正确的版本。