问题标签 [swiftpm]
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.
ios - 使用 CocoaPods 和 SwiftPM 复制符号
从 Xcode11 开始,我们一直在从 CocoaPods 迁移到 SwiftPM。不幸的是,一些依赖项还没有 SwiftPM 支持。像火力基地。
这不是一个真正的问题,因为它们可以彼此相邻共存。
但是自从(我认为 Firebase iOS SDK v6.13.0)他们添加了对PromisesObjC
.
这本身不是问题,但我们的大多数项目(和(子)依赖项)都使用谷歌通过 SwiftPm 的承诺。
现在的问题是Promises SwiftPM 依赖项和Firebase CocoaPods 都使用FBLPromises,这将导致以下错误:
目前解决此问题的唯一方法是将Firebase CocoaPods depenceny 设置为v6.11.0
我当前的Podfile:
ios - 使用 CocoaPods 和 SwiftPM 实现的 FBLPromise 崩溃
一段时间以来,我们一直在从 CocoaPods 迁移,但并不是每个依赖项都进行了转换。像火力基地。
我有一个关于重复符号的类似问题,但现在我面临一些新问题,这可能是因为我在 SwiftPM 和 CocoaPods 中都使用了依赖项。
运行我的(示例)项目后,它崩溃了:
顶部有警告:
在我更新到 Firebase SDK v6.26.0 之前,我只会收到第一个警告,但自从更新后它崩溃了。
我看到了一个关于如何在库中使用 Firebase的文档和一个关于类似崩溃的GitHub 问题。但是除了降级之外,似乎没有任何方法可以解决此崩溃。
我上传了一个示例项目:https ://github.com/basvankuijck/SampleProjectFirebaseCrash 。
删除 SwiftPM Promises 依赖项不是一种选择,因为实际项目正在使用对 Promises 具有依赖项的 SwiftPM 依赖项。
Podfile没有什么花哨的,SampleProject 只使用一个 SwiftPM 依赖项。
有谁知道如何让 SwiftPM 和 CocoaPods 很好地协同工作,尤其是中间的 Firebase?
ios - 带有不安全构建标志的 Swift 包依赖项:目标完整性错误
TL;博士
尝试在 Xcode 的 iOS 项目中使用本地 Swift 包依赖项时,出现以下错误:
The package product 'DlibWrapper' cannot be used as a dependency of this target because it uses unsafe build flags.
(我使用不安全标志来指定静态库位置)
我还尝试将包作为基于远程分支的依赖项导入,但无论如何它都失败了。
根据Swift 论坛上的这篇文章,该问题已在不久前得到解决,并且相应的拉取请求已被合并。
Swift 5.2.4 (Xcode 11.6) 和 5.3 (Xcode 12 beta 3) 都会出现这个问题。
任何线索可能是什么问题?
细节
我正在尝试构建一个包装dlib库并在 iOS 应用程序中使用它的 Swift 包。由于平台的原因,我无法使用.systemLibrary
目标链接dlib
. 所以我将它预编译在一个静态库中,并与包装器代码一起打包,如下所示:
的简化内容DlibWrapper/Package.swift
:
我试图在link
内部使用该属性,module.modulemap
但编译器似乎忽略了它。此外,在目标清单中提供库的绝对路径.linkedLibrary()
也无济于事,链接器抱怨它找不到库。
任何解决方法的想法?(作为最后的手段,我可能会将所有内容打包在一个框架中)
将不胜感激任何帮助。
谢谢
c - 找不到 C 库的 SwiftPM 框架
我正在使用 Swift 包管理器为现有的 C 库创建一个 Swift 包装器。我认为我已经正确构建了所有内容,但是在创建和构建 Xcode 项目时出现错误。我已经尝试了我能找到的一切,但没有运气。正式让我难过。
以下是项目当前状态的链接:https ://github.com/JKcompute/Camiitool/tree/stackpost
这是我的 Package.swift
所以我这里的 Camiitool 是 C 库 Amiitool。Amiitool 依赖于 mbedtls。所以我有一个针对 mbedtls、Camiitool 的目标,然后我也有一个针对 amiitoolSwift 的目标,我计划拥有我的 swift API。
这是来自 amiitoolSwift 目标的我的 swift 文件。注意:它现在非常基本,仅用于测试。
问题是,当我构建时,我收到 Camiitool 的“未找到框架”错误。
ld:找不到框架 Camiitool clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我试图解决这个问题的任何事情似乎都会产生相同错误的一些不同版本。例如“Module not found Camiitool”,或者我找到了 Camiitool,但随后我在方法调用 (nfc3d_version_fork) 上收到错误,表明该方法不存在。
最后一点:我的项目的当前状态基于我发现的这个示例:https ://github.com/RoaringBitmap/SwiftRoaring 这与我正在做的基本相同,除了没有子模块。我已经取消了这个项目,并且能够很好地构建和运行它。我已经比较了项目之间的所有设置,我没有注意到任何差异。这导致我最终在这里发帖。
运行 MacOS 10.15.7、Xcode 12.0
swift - Swift 包中的文件超出范围
我创建了一个带有与该项目相关的 swift 包(我们称之为“Foo”)的基本项目。
Foo().text
我尝试从from打印“hello world”,AppDelegate
但出现错误:
然后我尝试向这个包中添加一个新的结构或类,我得到一个错误:"Cannot find {ObjectName} in scope"
Foo 中的测试全部通过。看起来我错过了一些步骤。
ios - Swift 包管理器 - 在包的故事板中设置自定义类失败
我正在尝试为我们用来在我们的主项目中与 Carthage 链接的 iOS 框架实现对 Swift 包管理器的支持。该框架的名称是“OptionsSheetKit”
该框架包含一个具有外观UIViewController
的副本,以及一个具有视图控制器设计的情节提要。UIAlertController
.sheet
当我从这样的框架内创建视图控制器的实例时:
该应用程序编译并运行,但是不再设置所有自定义集类,并且我在 XCode 的调试区域中收到此警告:
我的Package.swift
样子是这样的:
这是在情节提要中设置类的方式,但找不到它。
也许它无法使模块正确。
我知道 SwiftPM.storyboard
是一个已知文件,它会自动为包创建一个资源包,我可以在应用程序的主包中看到该资源包的文件名OptionsSheetKit_OptionsSheetKit.bundle
,我知道它的包标识符必须是OptionsSheetKit-OptionsSheetKit-resources
,所以它全部在那里。
我设法使其工作的唯一方法是使用 iOS 13+ 方法实例化 ViewController,UIStoryboard.instantiateViewController(identifier: String, creator: NSCoder)
但它是一种解决方法,因为我不仅要为视图控制器这样做,而且要为我在控制器的视图,这使得故事板毫无意义。
更重要的是该应用程序的最小部署目标是 iOS 12.2,所以这对我来说不会削减它。
你们知道为什么会失败吗?我尝试将type
库产品中的参数设置为,.dynamic
因为我知道动态框架可以在它们的包中包含资源,就像我之前那样,也尝试了该.static
类型,但无法使其工作。
这是一个已知的错误,还是 SwiftPM 仍然不支持这个?
提前致谢!
ios - 忽略系统包中声明的目标“swift-nio-zlib-support”
自从升级到 Xcode 12.5 以来,我从 SPM(我认为)收到了这个警告,我有两个问题:
- 这是什么意思?
- 我能做些什么来解决/隐藏它?
将感谢任何回应。我在谷歌上找不到这些问题的好答案。