向Swift Package中添加资源文件

801 阅读1分钟

这是关于 SwiftPackage 的又一篇记录,作为掌握Swift Package的其中一部分,主要总结如何在包里添加资源文件。

目前,可以向 Swift Package 里添加的资源文件,包括了 Image,Storyboard,本地化,二进制,脚本等类型。

添加 Asset

选中 Source/SwiftPMDemo 目录,新建一个asset 文件。

Screenshot 2023-06-03 at 18.24.48.png

将要使用的图片拖入 Media.xcassets,这样添加图片,我们可以直接使用。

然后只要使用Image的带bundle参数初始化方法,选择 .module

Image("swiftLogo", bundle: .module)

Screenshot 2023-06-03 at 18.56.47.png

这样就成功添加,并使用了图片。

资源文件的类型

一些资源可以直接被识别,属于Xcode项目中创建的文件,上边使用.xcassets 文件就是其中一种。

Screenshot 2023-06-03 at 19.06.13.png

这些文件Xcode 自己就能识别其定位,不用再去声明,只需要放在Sources下的和taget名一样的文件下即可。

另外还有一些文件,它们的定位就不太明确了,比如下边这些。

Screenshot 2023-06-03 at 19.10.17.png

在向Swift Package 添加这些定位不明确的资源文件时,就需要声明这些文件的用途了。

这里举一个 WWDC 2020上的例子:

截屏2023-06-04 11.23.36.png

  • Internal Notes.txt 和 Artwork Creation文件夹,都不属于 GameLogic,使用 taget 的 excludes参数。
  • Logo.png 是 GameLogic 的依赖文件,在运行时用到,使用了 target 的 resources 参数的 .process
  • Game Data 包含一些文件和其他目录, 在运行时复制一份使用,使用了 target 的 resources 参数的 .copy

使用这几个参数,确定文件在包内的定位,每个这种非Xcode文件,都应该确定其定位。

最后,这篇文章的主要内容来自于 WWDC2020 Swift packages: Resources and localization 的总结,如果想了解详细内容,可自行查看视频。