我已经建立了一个音频主机应用程序,可以托管虚拟仪器和Auv3格式的效果插件。虽然虚拟仪器加载正常,但许多效果插件无法加载。我需要苹果的帮助来解决为什么这些插件无法加载。
以下是无法加载的插件列表: Altiverb,Lexicon,AUMatrixReverb,AUNewPitch,AURogerBeep,AUReverb2,AUSampleDelay
以下是正确加载的插件列表: Native Instruments ( All ),Spectrasonics Omnisphere,上面没有列出的所有其他Apple AU插件。
应该注意的是,这两个没有加载的非苹果插件都需要一个带有许可证的iLok加密狗。iLok已附加,并且软件在发生错误时已获得授权。请注意,这些在Logic Pro和Digital performer上运行良好。使用需要iLok的插件是否需要特殊的代码、权限或代码签名?目前还不能确定这是否是原因,但它值得探索。
尝试加载Altiverb时,错误消息为:
致命错误: 100000
发生致命的包装器引导错误。无法加载此软件。请与软件发行商联系以获得使用此软件的支持。
加载效果失败。错误:错误Domain=NSOSStatusErrorDomain代码=-1 "kCFStreamErrorHTTPParseFailure / kCFSocketError / kCFStreamErrorDomainCustom / kCSIdentityUnknownAuthorityErr / qErr / telGenericError / dsNoExtsMacsBug / kMovieLoadStateError / cdevGenErr:无法解析请求/响应。//自定义为有问题的流的类型//删除过程中找不到队列元素//不是SysErr,只是占位符//常规错误;cdev为灰色,但没有警报“
尝试加载词典时,错误消息为: 2020-09-21 09:38:42.609730-0700 Composer Bot Desktop14189:5425867 APComponent.mm:397 CFBundle 0x12d9226e0 (捆绑包,未加载):无法加载捆绑包:无法加载捆绑包“LexConcertHallAU”,因为它已损坏或缺少必要的资源。(dlopen_preflight(/Library/Audio/Plug-Ins/Components/LexConcertHall.component/Contents/MacOS/LexConcertHall):找不到合适的图像。确实发现:段中的/Library/Audio/Plug-Ins/Components/LexConcertHall.component/Contents/MacOS/LexConcertHall: mmap() errno=13,映射/Library/Audio/Plug-Ins/Components/LexConcertHall.component/Contents/MacOS/LexConcertHall)中的address=0x1798E1000::map() size=0x003AC000 segment=__DATA无法加载效果。错误:错误Domain=NSOSStatusErrorDomain代码=-1 "kCFStreamErrorHTTPParseFailure / kCFSocketError / kCFStreamErrorDomainCustom / kCSIdentityUnknownAuthorityErr / qErr / telGenericError / dsNoExtsMacsBug / kMovieLoadStateError / cdevGenErr:无法解析请求/响应。//自定义为有问题的流的类型//删除过程中找不到队列元素//不是SysErr,只是占位符//常规错误;cdev为灰色,但没有警报“
在包含的文件夹中再现的步骤,我将提供根据请求,打开xcode项目AudioFramework.xcodeproj选择方案: AudioFrameworkDemo运行项目A混音板应出现在左侧的第一个通道,选择顶部音频FX单元格(非输入),在下拉列表中选择Altiverb或词典(如果你有这些插件中的任何一个)如果你没有这些产品,你可以尝试任何其他第三方插件,需要一个iLok加密狗。(同样,我们不知道iLok是否是罪魁祸首)您可能会看到一条错误消息,指出这些插件无法在调试器存在的情况下运行。因此,当应用程序仍在运行时:在下面的dock中,右键单击AudioFramework->Options->Keep In dock退出应用程序,这次从dock再次启动。重复上述步骤。
你可以在Github上查看源代码:
发布于 2020-09-30 12:07:42
我收到了iLok加密狗制造商PACE anti盗版的回复。他们告诉我以下方法解决了我的问题,并允许插件运行:
事实证明,需要将以下功能添加到签名和功能->Hardened下的项目中
允许未签名的可执行内存禁用库验证
来自PACE的完整信息在这里:
包装所需的权利
如果您包装了一个需要公证的应用程序,或者您正在公证一个包含打包的包(如PACE保护的插件)的主机应用程序,那么您将需要在签名时添加com.apple.security.cs.allow-unsigned-executable-memoryentitlement。为此,您应该创建一个至少包含以下内容的授权文件(根据需要添加您自己所需的授权):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>我们的一位工程师指出,“不同团队ID”(可能还有其他一些)的问题必须通过授权来解决“。他提供了以下信息,这些信息来自他几周前帮助解决的另一个问题:
我不是这个领域的专家,但我相信解决这个问题的实用方法是根据您的应用程序调整授权列表。您需要添加此授权: com.apple.security.cs.disable-library-validation.
我已经看到DAW供应商在最近的版本中已经这样做了,有一个类似于下面的plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.personal-information.addressbook</key>
<true/>
</dict>
</plist>发布于 2020-12-21 02:44:46
关于上面的回答,
因此,我认为唯一需要的授权密钥是com.apple.security.cs.disable-library-validation
但是,根据我的经验,您还必须检查是否禁用了沙箱。
它已经为此浪费了很多时间!:)
发布于 2021-02-24 01:52:15
我的一款应用程序也出现了同样的错误,该应用程序可以在其他macs电脑上显示,但我的却从未显示过。第一个答案帮助我找到了解决方案:
生成的授权文件运行协同设计
codesign -f --options=runtime -s MySignID --entitlements myApp.entitlements MyApp.appcom.apple.security.cs.allow-unsigned-executable-memory
的com.apple.security.cs.allow-unsigned-executable-memory权限
codesign -d --entitlements :- MyApp.apphttps://stackoverflow.com/questions/64000799
复制相似问题