标签: swift-package

Swift 包管理器无法解析所有库、项目

在此输入图像描述

每当我通过 Xcode 中的 Swift 包管理器添加新包时,总会发生此错误:

无法获取库

我已经在 Xcode 中配置了 GitHub Auth Token 设置并注册了我的 GitHub 帐户。

我的 macOS 版本是 Monterey 12.1,我的 Xcode 版本是 13.1,我的命令行工具是 13.1,我使用的是 M1 芯片组 Mac。

在此输入图像描述

xcode ios swift swift-package-manager swift-package

14
推荐指数
1
解决办法
7061
查看次数

如何显示 Swift 包中的代码覆盖率?

在我的 M1 mac 上,使用 Xcode 13.3,我\xc2\xa0 创建了一个包并显示了代码覆盖率栏(编辑器菜单 \xe2\x80\x93> 代码覆盖率)。

\n

运行测试后,源代码中根本没有代码覆盖率的指示。

\n

测试包时如何获得代码覆盖率?

\n

xcode code-coverage swift-package

11
推荐指数
2
解决办法
3076
查看次数

链接到 Swift 包内的 fat 静态库

我\xe2\x80\x99m 尝试构建一个 Swift 包,该包包装了一个用 C: libndi_advanced_ios.a编写的胖静态库,来自NewTek\'s Apple Advanced NDI SDK

\n

我在将预编译库(只有头文件和 .a 二进制包可用)链接到我的 Swift 包时遇到问题。我做了很多研究并尝试了不同的解决方案,但没有一个有效。这是一个快速列表:

\n
    \n
  • 无法捆绑在 XCFramework 中,因为libndi_advanced_ios.a支持多个平台(arm_v7、i386、x86_64、arm64)并xcodebuild -create-xcframework返回错误( Swift 论坛binaries with multiple platforms are not supported上也讨论了此解决方案);

    \n
  • \n
  • 按照SPM 文档(已过时)的建议使用.linkedLibraryin会发出警告,并且我什至不记得它是否构建成功;targetssystem packages are deprecated; use system library targets instead

    \n
  • \n
  • 使用不同的标志和设置(如linkerSettings)并没有成功。也许我只是错过了正确的组合。

    \n
  • \n
\n

我可以链接数十个 Stackoverflow 的问题和其他没有帮助的帖子,但它们毫无用处(abc)。

\n

目前我有这样的配置: …

static-libraries ios swift swift-package-manager swift-package

9
推荐指数
2
解决办法
4890
查看次数

Xcode 12 / 13 中的 Swift 包中的文件/版权标头不完整

在使用 Xcode 12/13 开发 swift 包时创建新文件时,有没有办法自动将包/目标名称和版权+公司名称添加到标头?

\n

只需创建一个新包(文件 > 新建 > 包)并将新文件添加到源中(文件 > 新建 > 文件)。

\n

目前给了我这个:

\n
//\n//  File.swift\n//  \n//\n//  Created by User Name on 02.10.21.\n//\n
Run Code Online (Sandbox Code Playgroud)\n

而不是这样(就像将文件添加到常规 Xcode 项目时一样):

\n
//\n//  File.swift\n//  MyPackage\n//\n//  Created by User Name on 02.10.21.\n//  Copyright \xc2\xa9 2021 Company Name. All rights reserved.\n//\n
Run Code Online (Sandbox Code Playgroud)\n

谢谢!

\n

xcode package ios swift swift-package

8
推荐指数
1
解决办法
697
查看次数

将包依赖项编辑为本地包

概述

  • 我有一个使用远程 swift 包的项目。
  • 我想在同一个项目中编辑这个包,以便我可以根据使用情况对其进行改进。

目的:

  • 为此,我尝试添加与本地包相同的包,以便我可以编辑它。

参考:

https://developer.apple.com/documentation/swift_packages/editing_a_package_dependency_as_a_local_package

问题:

  • 当我将包含的克隆文件夹拖放Package.swift到项目中时,我看不到项目中的任何本地包源文件。(见截图)

带有 Swift 包的 Xcode 项目

我一直为此伤透了脑筋。对此的任何帮助将不胜感激。

Xcode版本:

  • 13.2 (13C90)(从开发者门户下载,而不是AppStore)

xcode swift swift-package-manager swift-package

8
推荐指数
1
解决办法
2609
查看次数

为什么 Swift 包管理器不询问文件名?

在常规的 Xcode 项目应用程序中,当我创建新文件时,它会提供一个模板(例如 SwiftUI/Swift/Storyboard)供我选择。我选择一个模板,单击“下一步”,提示将允许我输入文件名。之后,Xcode 会自动生成具有给定文件名、头文件名和结构名称(如果是 SwiftUI 文件)的文件。

然而,在 Swift 包管理器项目中,创建新文件并没有让我有机会输入文件名,而是创建一个带有占位符名称(如 file.swift)的默认 Swift 或 SwiftUI 文件。

这是已知问题或错误吗?为什么会有这种行为?有办法改变这个吗?

质疑信用

xcode swift swift-package-manager swift-package

8
推荐指数
1
解决办法
540
查看次数

Swift Package - 如何从实际的 Swift Package 中排除根 git 目录中的文件?

我正在创建一个 Swift 包,它本质上是从 Objective-C 框架生成的多个 XCFramework 的包装器,以便可以通过 SPM 安装它们。

就创建 SP 以及将其作为依赖项添加到应用程序的能力而言,一切工作正常。但是我在 SP 的存储库中包含了一堆非必要的文件,我不想将它们包含在实际的 SP 中 -即,当 SP 作为依赖项添加时,它们不应该显示在 Xcode 的导航器中。 (这些包括源 Obj-C 框架、自述文件、更改日志、用于演示应用程序的 Xcode 工作区、用于生成 XCFrameworks 的脚本文件等)

这可能吗?或者 SPM 是否会始终检出整个存储库并使所有文件对用户可见?

我尝试过使用Target说明符的各种排列:source, path, exclude但无济于事。

这是我可以通过有效清单获得的最接近的结果,但是当我在虚拟 Xcode 应用程序中查看 SP 时,我仍然可以看到包含的存储库中的所有文件:

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

import PackageDescription

let package = Package(
    name: "WrapperSwiftPackage",
    platforms: [.iOS(.v13)],
    products: [
        .library(name: "WrapperSwiftPackage", targets: ["WrapperSwiftPackage"])
    ],
    dependencies: [], …
Run Code Online (Sandbox Code Playgroud)

swift swift-package-manager swift-package

7
推荐指数
1
解决办法
1701
查看次数

使用 Xcode 的 Swift 包中没有此类模块 - 依赖项中列出的包

我创建一个空白模板包:

\n
> swift package init --name Temp\n> open Package.swift\n
Run Code Online (Sandbox Code Playgroud)\n

Xcode 版本 13.2.1 (13C100) 打开该包。

\n

我向包添加了依赖项。

\n
dependencies: [\n    .package(url: "https://github.com/johnsundell/publish.git", from: "0.7.0")\n],\n
Run Code Online (Sandbox Code Playgroud)\n

此时 Xcode > Product > Build 成功。

\n

我编辑Temp/Sources/Temp/Temp.swift以插入在 中定义的包的第一行dependencies

\n
import Publish\n
Run Code Online (Sandbox Code Playgroud)\n

现在构建会生成以下错误:\xe2\x80\xa6/Temp/Sources/Temp/Temp.swift:1:8: error: no such module \'Publish\'

\n

我确信这是苹果的一个错误。或者我可能会错过一些东西。

\n

当有xcodeproj和 提供的附加结构时,有几篇关于此问题的帖子。其中一些暗示了可以帮助某些人的解决方法。

\n

有没有人看到过这个和/或知道如何解决它?

\n

Apple 的使用 Xcode 创建独立的 Swift 包文档没有提供任何见解。

\n

xcode swift swift-package-manager swift-package

7
推荐指数
1
解决办法
3857
查看次数

如何在自己的 swift 包中使用其他 swift 包?

我目前正在开发一个 Swift 包,我想在其中使用其他 Swift 包。为此,我将要使用的包添加到 Package.swift 中的依赖项中

dependencies: [
    // Dependencies declare other packages that this package depends on.
    // .package(url: /* package url */, from: "1.0.0"),
    .package(url: "https://github.com/jedisct1/swift-sodium.git", .upToNextMajor(from: "0.9.1")),
    .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.5.0"))
],
Run Code Online (Sandbox Code Playgroud)

这是我的完整 Package.swift:

dependencies: [
    // Dependencies declare other packages that this package depends on.
    // .package(url: /* package url */, from: "1.0.0"),
    .package(url: "https://github.com/jedisct1/swift-sodium.git", .upToNextMajor(from: "0.9.1")),
    .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.5.0"))
],
Run Code Online (Sandbox Code Playgroud)

然后,这些包将显示在项目导航器中的“包依赖项”下。但是当我尝试使用“import Alamofire”时,我收到一条错误消息“没有这样的模块‘Alamofire’”。如何在自己的包中正确使用这些包?

xcode swift swift-package-manager swift-package

7
推荐指数
1
解决办法
4257
查看次数

Xcode 构建报告 Swift Package Manager 包“没有这样的模块”。一次又一次的构建最终修复了它

在执行“清理构建文件夹”后尝试构建时,我收到“没有此类模块”错误。反复尝试构建最终没有错误。

重要提示:找不到的模块是使用 Swift Package Manager 的本地包,即不是从 git 下载的。我像这样指定这些依赖项:

.package(url: "file:../CoreGraphicsExtensions", from: "0.0.0")
Run Code Online (Sandbox Code Playgroud)

/UIKitExtensions/Package.swift正如我在此处列出的文件中所见:

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

import PackageDescription

let package = Package(
        name: "UIKitExtensions",
        products: [
            // Products define the executables and libraries a package produces, and make them visible to other packages.
            .library(
                    name: "UIKitExtensions",
                    targets: ["UIKitExtensions"]),
        ],
        dependencies: [
            // Dependencies declare other packages that this package depends …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift-package-manager swift-package

7
推荐指数
2
解决办法
5360
查看次数