这是关于 SwiftPackage 的又一篇记录,作为掌握Swift Package的其中一部分,主要总结如何在包里添加资源文件。
目前,可以向 Swift Package 里添加的资源文件,包括了 Image,Storyboard,本地化,二进制,脚本等类型。
添加 Asset
选中 Source/SwiftPMDemo 目录,新建一个asset 文件。
将要使用的图片拖入 Media.xcassets,这样添加图片,我们可以直接使用。
然后只要使用Image的带bundle参数初始化方法,选择 .module
。
Image("swiftLogo", bundle: .module)
这样就成功添加,并使用了图片。
资源文件的类型
一些资源可以直接被识别,属于Xcode项目中创建的文件,上边使用.xcassets 文件就是其中一种。
这些文件Xcode 自己就能识别其定位,不用再去声明,只需要放在Sources下的和taget名一样的文件下即可。
另外还有一些文件,它们的定位就不太明确了,比如下边这些。
在向Swift Package 添加这些定位不明确的资源文件时,就需要声明这些文件的用途了。
这里举一个 WWDC 2020上的例子:
- 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 的总结,如果想了解详细内容,可自行查看视频。