(MacOS) 禁用协同设计检查/在多个文件上运行协同设计

逆向工程 自动化 苹果系统
2021-07-10 13:23:17

所以我有两个问题,我会尽量简短(另外,我是个菜鸟):

  1. 我运行 logic pro x 和其他软件来制作音乐,如果出现以下情况,一些第三方插件会使程序崩溃:

    异常类型:EXC_BAD_ACCESS(代码签名无效)

    我可以解决这个问题,codesign -f -s - (file)但我宁愿不这样做。有没有办法禁用代码签名检查,这样它甚至不会给我一个错误并且不会检查它?

我假设答案是否定的,因此我的第二个问题是:

  1. 我需要(包)内的文件夹内sudo codesign -f -s -.bundle文件上运行,并且我有很多这些要通过,例如:Resource.component

    Plugin_2.component -> Resources -> **Plugin_2.bundle**  
    Plugin_3.component -> Resources -> **Plugin_3.bundle**
    

    有没有办法让命令自动执行?

    我在想也许在自动机中?让它做这两个步骤的东西:

    1. 在包.bundleResource文件夹中 查找文件
    2. 运行sudo codesign -f -s -

    那可能吗?也许在自动机中制作并在右键菜单中将其添加到服务?或者让它扫描整个文件夹.component

任何帮助,将不胜感激!
谢谢

2个回答

经过一些试验和错误,我设法在终端中使用以下命令轻松解决它

find . -name "*.bundle" -execdir sudo codesign -f -s - {} \;  

find . -name "*.EXTENSION" 负责在目录中查找特定的文件扩展名

-execdir YOUR COMMAND {} \;负责执行命令。在上一个 find 命令的结果上
使用-execdir-> ( {})

毕竟相当简单,希望这可以帮助未来的人

看看我制作的这个脚本,它负责你的整个插件文件夹。肯定有助于全新的操作系统安装。

#!/bin/bash

cd /Library/Audio/Plug-Ins/

find . -name "*.bundle" -execdir sudo xattr -cr \;
find . -name "*.VST" -execdir sudo xattr -cr \;
find . -name "*.vst3" -execdir sudo xattr -cr \;
find . -name "*.component" -execdir sudo xattr -cr \;
find . -name "*.dpm" -execdir sudo xattr -cr \;

find . -name "*.bundle" -execdir sudo codesign -f -s - {} \;
find . -name "*.VST" -execdir sudo codesign -f -s - {} \;
find . -name "*.vst3" -execdir sudo codesign -f -s - {} \;
find . -name "*.component" -execdir sudo codesign -f -s - {} \;
find . -name "*.dpm" -execdir sudo codesign -f -s - {} \;

尽管很有用,但它可以使用一些改进。我想进一步扩展此脚本以包括清除/设置权限以允许此操作。根据我目前对它的工作原理的了解,您可以使用 Batchmod 之类的工具为每个单独的文件设置权限,然后繁琐地运行此脚本。

如果将来有人遇到这种情况,请随时做出贡献。