将AudioKit iOS应用移植到Catalyst macOS应用时出现编译错误

问题描述 投票:2回答:2

我有一个iOS应用程序,可以很好地与AudioKit的iOS版本配合使用。我想尝试通过放入AudioKit.xcframework移植到macOS w Catalyst。这是我所做的

  1. 从源代码编译AudioKit-4.9.5来生成AudioKit.xcframework(我以前从同一源代码发行版使用本地编译的AudioKit iOS框架,但在非Catalyst版本上没有问题)
  2. 在“常规”标签中,
    • 选中Mac作为部署目标
    • 删除了旧的AudioKit iOS框架
    • 添加了AudioKit.xcframework
  3. 在“构建设置”标签中,
    • 将“框架搜索路径”从AudioKit iOS框架的父目录更改为AudioKit.xcframework的父目录
  4. 在“构建阶段”标签中,
    • AudioKit.xcframework出现在“链接二进制文件和库”中
    • AudioKit.xcframework出现在“嵌入式​​框架”中

我收到以下错误,

AudioKit.xcframework compilation errors

当前正在使用Xcode 11.4.1。

audiokit xcframework
2个回答
1
投票

在此回答我自己的问题,因为此问题似乎是包含AudioKit类的AudioKit模块的构件。将AudioKit类重命名为其他名称可以解决此问题,尽管我不鼓励其他人这样做,而要等待将来的AudioKit版本执行此操作。


0
投票

我有完全相同的问题。我最终编辑了x86_64-apple-ios-macabi.swiftinterface文件,然后手动更正了界面。

我只需要在未解析的标识符中将AudioKit.作为前缀。它看起来更像是XCFramework构建配置/ swiftinterface生成器的错误。

使用AKSampler()时,我在运行时也会崩溃。由于某些原因,编译器无法理解.init()不存在,因此应该使用AKSampler(masterVolume: 1.0, pitchBend: 0.0, ... filterEnvelopeVelocityScaling: 0.0)原型。使用默认值手动调用可解决此问题。

编辑:您无需显式调用长初始化程序,只需删除以下行:


  @objc override dynamic public init()

@objc open class AKSampler : AKPolyphonicNode, AKComponent {部分开始。


总结:在XCFramework /中编辑x86_64-apple-ios-macabi.swiftinterfaceAudioKit.outputAudioKit.midi.client代替未解析的标识符。

如果使用AKSampler,请删除该行:

  @objc override dynamic public init()

@objc open class AKSampler : AKPolyphonicNode, AKComponent {部分开始。

© www.soinside.com 2019 - 2024. All rights reserved.