Swift 包清单属性“defaultLocalization”未设置

Max*_*eod 5 xcode localization localizable.strings swift swift-package-manager

通过尝试 Swift Packages,我创建了一个新包。现有 Xcode 项目框架目标中的源文件和资源已移至新结构中。

尝试构建时,脚本显示错误:

manifest property 'defaultLocalization' not set; it is required in the presence of localized resources
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题以便我可以创建 Swift 包?

Max*_*eod 24

这在WWDC2020 会议 10169中进行了解释。

在视频播放大约十一分半钟时,Apple 开发工具工程师 Anders Bertelrud 介绍了该主题。显示了使用 Xcode 12 将默认本地化参数添加到包清单的示例。

这声明了我在开发过程中使用的语言,如果没有更好的匹配可用,则将在运行时用作后备本地化。这对于任何包含资源的包都是必需的。

包含该参数的示例清单defaultLocalization如下所示:

// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "MyPackageUI",
    defaultLocalization: "en",
    platforms: [
        .iOS(.v13)
    ],
    products: [
        .library(
            name: "MyPackageUI",
            targets: ["MyPackageUI"]),
    ],
    targets: [
        .target(
            name: "MyPackageUI",
            dependencies: []),
        .testTarget(
            name: "MyPackageUITests",
            dependencies: ["MyPackageUI"]),
   ]
)
Run Code Online (Sandbox Code Playgroud)