Chr*_*all 3 swift swift-package-manager
我很确定 SPM 有能力解决这个问题,但我很难找到它。我很确定“我没有坚持正确”。
我对 SPM 还很陌生,并且仍然在其语法和方法上苦苦挣扎。
也许需要做的就是有人将我引导到适当的 PackageDescription 文档(我似乎找不到)。
我正在将我开发的应用程序切换为对我也编写的一些库使用 SPM。它一直在使用 Carthage,并且库被添加为简单的源文件(它们都是单源文件依赖项)。
一切都很好......除了我的应用商店上传被拒绝。
它不喜欢嵌入式库的捆绑 ID。它们的项目名称中有下划线,我应该用破折号替换它们。
这些库(这个、这个、这个)并不是真正设计为作为库提供的。它们实际上是单一源文件。看起来 SPM 将它们构建到一个库中,但我并没有真正为构建提供 Info.plist。
谁能指导我如何控制捆绑包 ID,同时保持模块名称相同?
好的。我想到了。
首先,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.
此外,还有一个糟糕的缓存问题。我必须删除所有内容以确保加载正确的版本。
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |