问题标签 [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.
swift - 尝试使用 swift 包内部的权利访问 CloudKit 数据库(测试)
我正在尝试将应用程序中的代码重构为 swift 包,并随时提供单元测试覆盖率。
当我尝试在单元测试中访问 CKDatabase 时,它会引发以下错误......
应用程序在权利 com.apple.developer.icloud-services 中缺少必需的值“CloudKit”。有权利:CKEntitlements<0x600002003c60>:权利= {},错误=(空)(NSInternalInconsistencyException)
如何为 swift 包提供 CloudKit 权利,或访问应用程序的权利?
swift - Swift 包 - 如何从实际的 Swift 包中排除根 git 目录中的文件?
我正在创建一个 Swift 包,它本质上是从 Objective-C 框架生成的多个 XCFrameworks 的包装器,因此可以通过 SPM 安装它们。
就创建 SP 以及将其作为依赖项添加到应用程序的能力而言,一切正常。但是我在 SP 的存储库中包含了一堆非必要的文件,我不想将它们包含在实际的 SP 中——即当 SP 作为依赖项添加时,它们不应该出现在 Xcode 的导航器中。 (这些包括源 Obj-C 框架、自述文件、变更日志、用于演示应用程序的 Xcode 工作区、用于生成 XCFrameworks 的脚本文件等)。
这甚至可能吗?或者 SPM 是否会始终检查整个 repo 并使所有文件对用户可见?
我尝试使用Target
说明符的各种排列:source, path, exclude
但无济于事。
这是我可以通过有效清单获得的最接近的值,但是当我在虚拟 Xcode 应用程序中检查 SP 时,我仍然可以看到包含的 repo 中的所有文件:
ios - 带有 Xcode 12 / 13 的 Swift 包中不完整的文件/版权标头
在使用 Xcode 12/13 开发 swift 包时创建新文件时,有什么方法可以自动将包/目标名称和版权+公司名称添加到标题中?
只需创建一个新包(文件 > 新建 > 包)并将一个新文件添加到源(文件 > 新建 > 文件)。
目前给了我这个:
而不是这个(比如将文件添加到常规 Xcode 项目时):
谢谢!
ios - 如何在仅包含 binaryTargets (XCFrameworks) 的 Swift 包中包含/捆绑其他 Swift 包依赖项?
我正在从各种 Objective-C 框架(通过使用 XCFrameworks)创建 Swift 包。
我成功创建了 SP,但在涉及到它所依赖的其他 SP 依赖项时遇到了问题。
如果我只将WrapperPackage添加到我的DemoApp中,编译器会由于缺少SubDependencyPackage框架而失败。
如果我通过 SPM 将 SubDependencyPackage 添加到DemoApp ,它编译得很好。
是否有可能/我如何...
正确地将“子依赖项” (SubDependencyPackage)捆绑到 Swift 包(WrapperPackage)中,以便在DemoApp中我只需要通过 SPM 添加WrapperPackage并且所有依赖项都已解决?
工作流程
- DemoApp添加WrapperPackage作为 SPM 依赖项。
- WrapperPackage包含 2 个 XCFrameworks。
- 2 个 XCFrameworks 是从 2 个 Objective-C 框架生成的。
- Objective-C 框架具有单独 Swift 包(SubDependencyPackage)的“子依赖项”。
WrapperPackage.swift
swift - URLSession 异步在 Swift 包中不起作用
我正在尝试使用 Swift 5.5 中的 async / await 进行异步网络调用,但由于某种原因,它在我的 Swift 包中无法按预期工作。
上面的代码行在一个快速的操场上工作(这里的请求是一个 URLRequest)但它无法在我的 Swift 包中工作(使用 swift 工具版本 5.5)
起初的错误是:Type of expression is ambiguous without more context
但我意识到它与元组分配有关,所以我将语句更改为:
它给了我错误:Value of type 'URLSession' has no member 'data'
此外,Xcode 的代码完成在 Swift 包中工作时不会列出 .data(for:) ,而不是在 Playground 中工作。检查下面的屏幕截图以获得更好的理解。
c++ - C++ 检查包是否已通过 Swift 包管理器安装并包含一个文件
我有一组用 Swift 包管理器和另一个包管理器(我们称之为 PMX)解决的 C++ 包。
PMX 无法解析其中一个依赖项,但我必须在其上运行 CI。是否有可能以某种方式检查包是否正在使用 SPM 系统编译并包含适当的导入,如果它不使用 SPM,则不包含这些标头?
例子:
我想要类似的东西:
这样的事情可能吗?
ios - 更新到 MacOS Monterey 后的 Swift 包问题
我的 swift 包裹有这个问题。它是几周前使用 BigSur 创建的,作为我放置 iOS 15 的平台目标。我不明白它可能是什么
ld: warning: dylib (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/ManifestAPI/libPackageDescription.dylib) was built for newer macOS version (11.0) than being linked (10.15)
ios - 添加包依赖项后,xcode 13 Previews 停止工作
我发现了这个不错的包,它为 watchOS 提供了一个漂亮的日期和时间选择器。我将它添加到我现有的项目中,这是一个带有手表伴侣应用程序的 iOS 应用程序。一旦包被添加到项目中,Xcode 中的预览就会停止工作。
有数百个错误表明某些内容(Binding
、some View
等)仅在 iOS 13.0 或更高版本上可用。我的项目的目标是 iOS 15 和 watchOS 8。该包仅添加到 WatchKit 扩展应用程序中。
该软件包在模拟器或直接在 Apple Watch 上运行时运行良好。如果项目仅包含 watchOS 目标,预览也可以完美运行。
我创建了这个示例存储库,它由一个 iOS 目标和一个 watchOS 目标以及包组成。
许多错误消息之一:
诊断显示预览实际上是在运行 watchOS 8.0 的手表模拟器上尝试的
我不知道为什么 Xcode 甚至试图在 iOS 上运行它。该包仅添加到 WatchKit 扩展中。怎么做才能使预览再次起作用?
swift - Swift 包访问修饰符
我创建了一个简单Swift Package
的其中一个UI class
。
我设法上传到一个仓库并在一个项目中使用它。
当我第一次尝试导入它并在主项目中使用它时,访问修饰符出现问题,因为 mypackage
是not public
但定义为class MainView: UIView {}
.
在我将包裹更改为public class MainView: UIView {}
它之后,它运行良好。
我的问题:
这个包不像我的其他项目类吗?为什么应该与 一起使用public
?
有没有办法使用我的包类没有public access modifier
?