ios - 如何使 iOS 应用程序识别为 AudioUnit?
问题描述
我正在尝试从头开始制作一个最小的 iOS 插件。从一个空的 iOS 应用程序(Swift 5,XCode 12.5)开始,我认为将以下 dict 添加到项目的 Info.plist 以使其被识别为 AudioPlugin 就足够了,但是,安装它之后,AUM(或任何其他 AUv3主机)没有列出应用程序。
使广告应用程序被识别为插件需要什么?
<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
假设您的音频单元是“生成器”类型,它将出现在 AUM 中的“MIDI”下
推荐阅读
- docker - 无法连接到远程 docker 守护进程
- node.js - Stripe - 如何创建延迟订阅
- java - 同一台机器上不同项目的chromedriver崩溃问题
- python - Python中ARIMA的样本内预测区间
- python - 在 MySQL 中存储 numpy 数组(重新加载)
- javascript - CSS 未应用于 _app.js - NextJS
- python - 作为 pagerank 算法一部分的 sprank.py 背后的逻辑是什么?
- python - 如果不先导航到 Scripts 文件夹,我是否无法激活我的 virtualenv?
- android - 如何更改所选项目的颜色以及使用 Firebase Recycler Adapter 时的颜色?
- scala - Spark CSV 编写器为空字符串输出双引号