使用Swift Package Manager抑制来自依赖项的警告

时间:2017-11-16 15:06:05

标签: swift swift-package-manager

假设我有一个Package.swift如下所示,来自依赖关系的SomePackage会在swift build期间产生警告。

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    name: "my-app",
    dependencies: [
        .package(url: "https://some-package.git", .upToNextMajor(from: "1.0"))
    ],
    targets: [
        .target(name: "Run", dependencies: ["SomePackage"]
    ]
)

如何从依赖项中抑制这些警告,但保留那些来自我的代码的警告?

4 个答案:

答案 0 :(得分:3)

我使用基于CocoaPods的自定义脚本'生成我的Xcode项目后运行的xcodeproj工具。请参阅:https://gist.github.com/siemensikkema/57ef1ce3340e32b72dc59e44bc37b477

我调整它以对产生警告的框架进行例外处理,这些警告我不关心(在我使用Vapor 2时)。

答案 1 :(得分:2)

我不知道如何仅抑制依赖项警告,但可以通过传递此选项来禁止构建期间的所有警告:autoComplete = new FormControl(null, []);search(event){this.receiptDiarizationFacade.getSubjects(event.query).subscribe(value=>this.autoComplete=value); } 。电话会看起来像

-Xswiftc -suppress-warnings

答案 2 :(得分:2)

如果您使用的是 Xcode 10 项目文件:

  1. 单击Xco​​de中的项目文件
  2. 选择您的依赖对象
  3. 转到构建设置
  4. 搜索 Swift编译器-警告政策
  5. 适当设置禁止警告标志

答案 3 :(得分:0)

使用Swift Tools版本5,您可以在包文件中定义编译器标志(请参见https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html#swiftsetting)。这是一个Package.swift的示例,它在构建期间禁止编译器警告:

// swift-tools-version:5.0

import PackageDescription

let package = Package(
    name: "Antlr4",
    products: [
        .library(
            name: "Antlr4",
            targets: ["Antlr4"]),
    ],
    targets: [
        .target(
            name: "Antlr4",
            dependencies: [],
            swiftSettings: [
                .unsafeFlags(["-suppress-warnings"]),
            ]),
        .testTarget(
            name: "Antlr4Tests",
            dependencies: ["Antlr4"]),
    ]
)

要仅在外来代码中禁止显示警告,应将代码分成两个包。