问题描述
我正在尝试从头开始制作一个最小的 iOS 插件。从一个空的 iOS 应用程序(Swift 5,XCode 12.5)开始,我认为将以下 dict 添加到项目的 Info.plist 以使其被识别为 AudioPlugin 就足够了,但是,安装它后,AUM(或任何其他 AUv3 host) 未列出应用。
需要什么才能将广告应用识别为插件?
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>MIDIAudioUnit</string>
<key>factoryFunction</key>
<string>$(PRODUCT_MODULE_NAME).AudioUnitViewController</string>
<key>manufacturer</key>
<string>INQS</string>
<key>name</key>
<string>MIDIAudioUnit</string>
<key>sandBoxSafe</key>
<true/>
<key>subtype</key>
<string>aumi</string>
<key>tags</key>
<array>
<string>Synthesizer</string>
</array>
<key>type</key>
<string>aumi</string>
<key>version</key>
<real>67072</real>
</dict>
</array>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.AudioUnit-UI</string>
</dict>
解决方法
从头开始:
- 创建新的/空白的 iOS 应用
- 添加新目标(类型:音频单元扩展)
- 在“框架、库和嵌入内容”部分向原始父应用的目标添加新的音频单元扩展目标。
您在第 2 步中创建的目标将是具有您列出的键的 Info.plist 的目标——而不是父应用。
此外,请确保您的音频单元扩展程序的包 ID 以您的父应用 ID 开头:
com.jnpdx.StackOverflowPlayground.AudioUnitParentApp //parent
com.jnpdx.StackOverflowPlayground.AudioUnitParentApp.AudioUnit // child
假设您的音频单元是“生成器”类型,它会出现在“MIDI”下的 AUM 中