Xcode: 在多个目标之间共享资产

Xcode: Share assets between multiple targets

我有一个包含两个目标的 Xcode 项目。我想在两个目标之间共享资产以避免重复文件。

我试过的:

  1. 创建SharedAssets.xcassets
  2. 将SharedAssets.xcassets添加到两个目标(创建.xcassets文件夹时,您可以select将其添加到哪个目标)
  3. .wav 文件添加到 SharedAssets.xcassets
  4. 在代码中引用 .wav 文件

结果:

两个目标都找不到 .wav 文件。

问题:

为什么两个目标都找不到 .wav 文件?如何在两个目标之间共享资产?

谢谢!

编辑:

我正在使用 SpriteKit SKActionSKScene:

中加载文件
private var sound: SKAction?

override func didMove(to view: SKView) {
    sound = SKAction.playSoundFileNamed("mySound.wav", waitForCompletion: false)
}

然后我播放这样的声音:

if let action = sound {
   self.run(action)
}

如果我在主包中引用 .wav 文件,此策略非常有效,但在 SharedAssets.xcassets.

中引用文件时失败

编辑#2:

我能够成功使用存储在 SharedAssets.xcassets 中的 images -- 所以,这是 sounds 的问题。

我没有将 .wav 文件放在 SharedAssets.xcassets 中,而是将其保留在包中的位置,并将其简单地添加到“目标成员资格”下的第二个目标中。

对每个 .wav 文件执行此操作解决了问题。