如何在Swift Package Manager库中包含资产/资源?

我想使用Apple的Swift Package

Manager来运送我的图书馆。但是,我的lib包含一个.bundle文件,其中包含多个以不同语言翻译的字符串。使用cocoapods,我可以使用spec.resource包含它。但是在SwiftPM中,我做不到。有什么办法吗?

回答:

使用Swift 5.3,最终可以添加本地化的资源????

包初始化程序知道一个defaultLocalization参数,该参数可用于本地化资源。

public init(

name: String,

defaultLocalization: LocalizationTag = nil, // New defaultLocalization parameter.

pkgConfig: String? = nil,

providers: [SystemPackageProvider]? = nil,

products: [Product] = [],

dependencies: [Dependency] = [],

targets: [Target] = [],

swiftLanguageVersions: [Int]? = nil,

cLanguageStandard: CLanguageStandard? = nil,

cxxLanguageStandard: CXXLanguageStandard? = nil

)

假设Icon.png您要针对英语和德语的人进行本地化。

图像应包含在Resources/en.lproj/Icon.png&中Resources/de.lproj/Icon.png

在可以像这样在包中引用它们之后:

let package = Package(

name: "BestPackage",

defaultLocalization: "en",

targets: [

.target(name: "BestTarget", resources: [

.process("Resources/Icon.png"),

])

]

)

请注意LocalizationTag是IETF语言标签的包装。

以下提案概述的功劳和贡献,请检查更多细节。

以上是 如何在Swift Package Manager库中包含资产/资源? 的全部内容, 来源链接: utcz.com/qa/401031.html

回到顶部