如何在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