ios - 包产品 'MyLibrary' 不能用作此目标的依赖项,因为它使用了不安全的构建标志

标签 ios macos swift-package-manager

我正在尝试为我的图书馆添加 SPM 支持。我需要为我的库的目标之一定义 unsafeFlags(为了将 Swift 代码导入 Objective-C++):

.target(name: "MyLibrary",
        dependencies: ["MyOtherTarget"],
        cSettings: [
            .unsafeFlags(["-fmodules", "-fcxx-modules"]),
            .define("BUILDING_FOR_SPM")
        ]
),

生成的包构建。但是当我将它导入主机应用程序时,它无法构建,因为

The package product 'MyLibrary' cannot be used as a dependency of this target because it uses unsafe build flags.

根据 this post和相应的pull request ,问题已在 Swift 4 中得到解决。我使用的是 Xcode 12.5 和 Swift 5。

这是怎么回事?

最佳答案

.unsafeFlags 不允许用于指定版本的依赖项。解决方法是使用提交哈希指定版本。

https://forums.swift.org/t/override-for-unsafeflags-in-swift-package-manager/45273 上对 monorepos 进行了详细讨论和另一种解决方法

关于ios - 包产品 'MyLibrary' 不能用作此目标的依赖项,因为它使用了不安全的构建标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67889931/

相关文章:

objective-c - Objective-C (OSX) 中的程序目录

Swift 测试给出错误 "Undefined symbols for architecture x86_64"

swift - 如何仅使用 Swift 包管理器在调试配置中设置 Swift 包

ios - deleteRowsAtIndexPaths 重置自定义单元格

cocoa - 强制 KVC 类型

在 OS X 中编译 C 文件

swift - swift “print”未出现在STDOut中,但是在ECS上的docker中运行时,第三方c库日志会显示

c++ - Xamarin iOS Native 链接在模拟器上工作,在设备上复制符号

ios - 如何将嵌入式框架的 dSYM 文件包含到应用程序存档中

iphone - 如何从应用程序委托(delegate)、 Storyboard、iOS6 获取我的 View Controller 的实例