由于新的安全性,Catalina 升级后无法使用旧的 NDK (android-ndk-r17c)

Posted

技术标签:

【中文标题】由于新的安全性,Catalina 升级后无法使用旧的 NDK (android-ndk-r17c)【英文标题】:Cannot use old NDK (android-ndk-r17c) after Catalina upgrade due to new security 【发布时间】:2020-02-11 21:23:07 【问题描述】:

升级到 macOS Catalina 后,我的项目将不再构建。这是因为 Catalina 认为“android-ndk-r17c”中的二进制文件不是来自受信任的开发者。

您会收到以下消息: “‘ld’无法打开,因为无法验证开发者。” “macOS 无法验证此应用是否没有恶意软件”

由于本机 openCV 库 SDK 和较新的 NDK 存在问题,我必须使用旧的 NDK。他们正在努力,但更新的 SDK 对我来说还不够稳定。

我能够通过转到安全窗格并单击安全警报上的“仍然允许”来解决“clang”和“clang++”无法工作的问题。但是,当使用“Id”尝试此操作时,我可以通过单击“仍然允许”来跳过第一个警告,但它似乎随后被调用,并且在随后的调用中我没有选项允许它打开。

真的没有代码。我只是(并且已经有很长时间了)通过配置指向旧 NDK 的 Android Studio NDK 参考。

在 NDK 的 IDE 中,无法加载“Id”:

"“ld”无法打开,因为无法验证开发者。" “macOS 无法验证此应用是否没有恶意软件”

【问题讨论】:

见github.com/android/ndk/issues/1060。我不知道为什么你只能允许其中一些。对我来说效果很好。 【参考方案1】:

我刚刚找到了解决方案。

这是一个乏味的过程,但是:

    MacOS:打开系统偏好设置 MacOS:转到安全和隐私(保持这个打开,整个过程都需要它) Unity:开始构建您的项目。出现错误时点击“取消” MacOS:在“安全和隐私”窗口中,点击“clang”错误附近的“允许”,以便 MacOS 系统识别并使用该应用程序。 错误会再次出现,但这次会要求您“打开”它。点击“打开” 由于各种依赖关系,构建会多次失败,但会因您需要在前面的步骤中允许的不同文件而失败。 再次构建您的项目。 如果失败,请再次执行这些步骤,直到不再失败。每次无法识别文件时遇到的每个错误都会有所不同

【讨论】:

补充:如果你之前做过sudo spctl --master-disable,“允许应用程序从:”下面有3个选项,你应该在第4步选择第二个名为“应用商店和确定的开发者”的选项,所以您可以看到“允许”和“叮当”错误。 请添加说明,您需要在“安全和隐私”的“常规”选项卡上才能看到安全消息。 多次尝试,直到从临江发出命令,效果很好。谢谢两位【参考方案2】:

要允许在 MacOs Catalana 上从 Anywhere 下载应用,请执行以下操作:

sudo spctl --master-disable

【讨论】:

这真的有什么作用吗?我仍然无法运行任何东西 这可能会删除一些步骤..所以我们需要点击“允许”然后“打开”..否则每个工具使用的每个单独的库都必须被允许这是一个噩梦般的苹果。让我们按文件夹来做吧.. 因此,要显示“任何地方”,您必须将“安全和隐私”模块保留为“设置”。但是,现在我仍然收到“无法验证”的消息,但是没有任何地方允许或打开。【参考方案3】:

我想补充一下 Mudassar Ashraf 的回答。

如果您在点击«取消»后没有看到«允许»选项,请将安全窗口中的«允许从以下位置下载应用程序»切换到«App Store并确定了开发人员»。这会以某种方式使«允许»按钮出现。然后将其切换回«Anywhere»。必要时重复。

【讨论】:

【参考方案4】:

如果由于某种原因在您的 Security & Privacy 窗口 按钮 allow 中没有出现,那么只需将您的 ndk 移动到其他目录并再次尝试整个过程。

【讨论】:

【参考方案5】:

在 ndk 目录 (ndkpath/toolchains/llvm/prebuilt/darwin-x86_64/bin/) 中找到您的 clang++ 程序,然后右键单击并打开

【讨论】:

【参考方案6】:

现在有更好的解决方法。

您可以进入安全和隐私,打开Developer Tools 并将您的终端应用程序添加到工具列表中。您的 IDE 也可以这样做。

【讨论】:

完美解决方案!我只是在Developer Tools中添加了Android Studio,现在可以运行ndk了。 这应该是公认的答案! 2021 年 4 月仍可与 Android Studio 4.1 配合使用【参考方案7】:

上面提到了解决方法。转到终端并运行此代码以允许来自“任何地方”的应用程序,并确保选择“任何地方”。这将防止询问您 100 次是否允许从 xxx 下载 xxx 文件以及多次构建失败。

sudo spctl --master-disable

【讨论】:

以上是关于由于新的安全性,Catalina 升级后无法使用旧的 NDK (android-ndk-r17c)的主要内容,如果未能解决你的问题,请参考以下文章

将OSX升级到Catalina后,zsh出现问题

升级到 Catalina (MAC OS) 后无法访问 github

如何在macos升级和安全?

升级mac Catalina版本后无操作权限

升级到macOS Catalina 10.15.x以后 Axure无法使用

升级到MacOS Catalina 10.15后尝试从Xcode 11.1部署到设备时,FIPS出现两个错误