首页 > 解决方案 > Xcode:在多个目标之间共享资产

问题描述

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

我试过的:

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

结果:

.wav任一目标都找不到该文件。

问题:

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

谢谢!

编辑:

我正在使用 SpriteKitSKAction从内部加载文件SKScene

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 中的图像——所以,这是声音的问题。

标签: swiftxcodexcasset

解决方案


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

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


推荐阅读