在Unity中,如何解决 "plugin.bundle已损坏,无法打开。你应该把它移到Bin"?

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

在MacOS Catalina v10.15.5上使用Unity 2019.3.15f1,我在我的项目中使用一些插件来支持某些功能。这些插件是UniWebView(用于显示Web视图)和NatCorder(用于在游戏过程中录制视频& 音频)。

在最新的MacOS更新之前,一切都能按预期工作。然而,在没有修改Unity或我的项目的情况下,我现在得到的错误是""UniWebView.bundle "已损坏,无法打开。每当调用插件的一个方法时,你应该把它移到bin'。编辑器因为这个错误而暂停,但我可以继续播放。当继续播放时,插件的功能都不能用,反而又抛出同样的错误。

NatCorder.bundle也出现了同样的情况,在其他使用NatCorder插件的项目中也出现了这种情况。因此,这似乎不是一个特定的bundle或项目所特有的问题。

这只发生在编辑器内的测试期间。在Android构建中,一切都能正常工作,这可能是因为编译插件使其成为内部构建的一部分。

为了解决这个问题,我试过。

  • 重新安装Unity
  • 重新下载并安装插件
  • 完成所有项目资产的重新导入

但是什么都没有用。我很疑惑。一些研究表明,这是MacOS GateKeeper不再允许打开身份不明的开发人员的文件的问题,因为 "允许从任何地方 "的选项已从设置中删除。我不知道这是什么时候发生的,但我担心可能是在最新的MacOS更新中发生的。手动打开UniWebView.bundle内容,并尝试打开一个文件,确实抛出了一个不明身份的开发者警告。

我试着在终端中使用命令 "sudo spctl --master-disable "来重新启用 "Allow from anywhere "选项。这样做的结果是,选项重新出现,并且似乎被选中了。然而,这并不能解决我的问题,在重启macbook后,该设置再次消失。

所以......我没有线索了,也没有任何改变。如果有人知道有什么线索可以跟进,请分享。我怀疑MacOS更新中发生了什么变化,导致我无法使用Unity编辑器应用中的文件,但我对MacOS相当陌生,不知道会是什么原因。

macos unity3d plugins bundle macos-catalina
1个回答
0
投票

像往常一样,经过一周的搜索没有结果,最后决定求助,我在发帖一小时后找到了解决方案。

下面是解决方案。

  1. 打开MacOS终端

  2. 输入命令:xattr -d com.apple.quarantine ...AssetsPluginsWhatever.bundle。

  3. 对你的每一个.bundle都这样做,它们就会再次工作。

在这里查看更多关于该命令的信息。https:/www.unix.comman-pageosx1xattr

在这里我第一时间找到了解决办法。https:/developer.maxst.comBoardQuestionsDetails813。但这将清除所有属性。也许最好只针对导致问题的属性,我用基本的xattr命令发现了这一点。

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