问题标签 [swift-package]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
19 浏览

ios - 如何将我的 xocde 项目转换为 xcode 包?

我有一个带有 swift 类和 pod 的常规 xcode 项目。我需要为项目生成文档。但是,我知道 xcode 13 内置文档生成器 (DocC)(产品 -> 构建文档)仅支持 xcode 框架和包的文档。因此,我需要将我的项目转换为 xcode 包。我该怎么做?(我是 iOS 开发新手)

0 投票
0 回答
78 浏览

swift - Swift 包管理器:浅层克隆

问题:

我将nlohmann/json包与 Swift 包管理器一起使用。Package.swift 清单文件

通过查看包清单,很明显该库仅包含一个文件和一个标头。但是,为了安装包,Swift 包管理器会克隆整个存储库,它的大小超过 300 MB。

潜在的解决方案

使用浅克隆将解决该问题。Swift Package Manager 可以使用浅克隆吗?对 Xcode 和命令行解决方案都感兴趣。

相关链接

Swift 论坛讨论

斯威夫特 JIRA

Firebase 团队的解决方案:分叉“有问题的”依赖存储库

0 投票
1 回答
457 浏览

ios - Swift Package Manager 无法解析所有库、项目

在此处输入图像描述 在此处输入图像描述在此处输入图像描述

[![在此处输入图像描述][4]][4] 每当我添加 swift 包管理器时,总是会发生此错误

无法获取库

我已经完成了 github auth token 设置并将我的 github 帐户注册到 xcode

我的 mac os 是 monterey 12,1

我的 xcode 版本,13.1,命令行工具 13.1

m1芯片组mac

添加任何后,详细错误消息 在此处输入图像描述

0 投票
1 回答
98 浏览

swift - 将包依赖项编辑为本地包

概述

  • 我有一个使用远程 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)
0 投票
0 回答
44 浏览

ios - 快速构建:警告:“--product”不能与自动产品“ProductName”一起使用;改为构建默认目标

我有一个Package.swift清单如下:

包清单摘要:

  • 3个目标
  • 1 个目标取决于另一个目标
  • PackageName与 macOS 兼容,其他仅适用于 iOS

构建命令

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

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

[137/137] 构建完成!

现在尝试PackageName为 macOS 构建:

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

[1/1] 规划构建警告:“--product”不能与自动产品“PackageName”一起使用;改为构建默认目标

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

问题

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

  1. long-package-name-ios-Package仅适用于 iOS 的集成(所有目标)
  2. PackageName为 macOS集成
0 投票
1 回答
173 浏览

ios - Swift Playground 4:导入 Swift 包

我在 Mac 上使用Swift Playgrounds App,这与 Xcode 中的 Swift Playgrounds 不同。

我有兴趣在我的 Playground 中使用基于 UIKit 的 Swift 包,但找不到类似于 Package.swift 文件或菜单项来添加包的任何内容:

是否可以选择连接存储在 git 存储库中的外部 Swift 包,还是只允许使用本地模块?

操场

0 投票
0 回答
28 浏览

swift - 如何在 Package.swift 中抑制 MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS

我的团队目前使用一个内部带有 CoreData 定义的框架。现在我尝试将其转换为 Swift 包。之前我们MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS = YES在 xcconfig 文件中定义了禁止should have an inverse警告。

如何抑制 Package.swift 中的警告?

我已经尝试过但没有成功:

  • cSettings: [.unsafeFlags(["-w"])]
  • swiftSettings: [.unsafeFlags(["-suppress-warnings"])]
0 投票
1 回答
147 浏览

swift - 使用 Xcode 的 Swift 包中没有这样的模块 - 依赖项中列出的包

我创建了一个空白模板包:

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

我在包中添加了一个依赖项。

Xcode > Product > Build 此时成功。

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

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

我确信这是一个Apple错误。或者我可能会遗漏一些东西。

当有一个xcodeproj额外的结构提供时,有几个关于这个问题的帖子。其中一些暗示了可以帮助某些人的解决方法。

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

Apple 的Creating a Standalone Swift Package with Xcode文档没有提供任何见解。

0 投票
2 回答
374 浏览

ios - 链接到 Swift 包中的胖静态库

我正在尝试构建一个 Swift 包,它包装了一个用 C: libndi_advanced_ios.a编写的来自NewTek 的 Apple Advanced NDI SDK的胖静态库。

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

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

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

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

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

目前我有这个配置:

带有 module.modulemap 的项目结构

其中Package.swift包含以下代码:

您可以在alessionossa/swift-ndi找到整个项目。
目前唯一的结果是一些警告并且模块 CiOSNDI 没有构建:

错误和警告

我也尝试过.systemLibrary(name: "CiOSNDI", path: "Libraries/"),这种配置:alessionossa/swift-ndi/tree/systemLibrary;但我收到这些错误:
错误和警告 2

笔记

NDI_include实际上是指向 的别名/符号链接/Library/NDI Advanced SDK for Apple/include,而NDI_iOS_lib指向/Library/NDI Advanced SDK for Apple/lib/iOS.

我总是在更改为Package.swift.

2022 年 10 月 1 日更新libndi_advanced_ios.a需要libc++.tbd。这可以在Build Phases -> Link Binary With Libraries中的应用程序中轻松链接,但我不知道如何在 Swift 包中链接。

0 投票
0 回答
26 浏览

xcode - 依赖于 Swift Collections 包的项目的 Xcodebuild 失败

我有一个 Swift 项目,它依赖于 Apple 的 Swift Collections 包。我已将包添加到项目中,从 Xcode 构建时一切正常(用于调试和发布)。

但是当我尝试使用 xcodebuild 从命令行构建时,构建失败并出现错误:

在构建开始时,xcodebuild 输出以下内容,因此它似乎可以很好地找到依赖项。

关于什么是失败以及如何解决它的任何想法?我使用的是 Xcode 13.2.1 版。