二进制似乎没有找到链接的 .dylib 库

Binary doesn't appear to find linked .dylib library

我有一个针对 macOS 的 github 操作需要下载 dmg 存档,提取二进制文件 并重新配置二进制文件,以便它们可以 运行 和 link 到下载的 .dylib 库。下面是我正在使用的脚本。 不幸的是,当我 运行 二进制文件 (kdu_expand) 我得到一个错误

/Users/runner/work/_temp/92b88adb-5bec-4d13-a51d-85fdf4e84e8d.sh: line 16:  1603 Killed: 9               ./kdu_expand -version
Error: Process completed with exit code 137.

这是将二进制文件 link 重新配置到动态库的正确方法吗?

wget -q http://kakadusoftware.com/wp-content/uploads/KDU805_Demo_Apps_for_MacOS_200602.dmg_.zip
mkdir kdu && mv KDU805_Demo_Apps_for_MacOS_200602.dmg_.zip kdu && cd kdu
7z e KDU805_Demo_Apps_for_MacOS_200602.dmg_.zip
7z e KDU805_Demo_Apps_for_MacOS_200602.dmg 2>/dev/null || true
7z e Payload~ 2>/dev/null || true
chmod +x kdu_expand
chmod +x kdu_compress
install_name_tool -id ${PWD}/libkdu_v80R.dylib libkdu_v80R.dylib
install_name_tool -change /usr/local/lib/libkdu_v80R.dylib ${PWD}/libkdu_v80R.dylib kdu_compress
install_name_tool -change /usr/local/lib/libkdu_v80R.dylib ${PWD}/libkdu_v80R.dylib kdu_expand
echo "${{ github.workspace }}/kdu" >> $GITHUB_PATH
./kdu_expand -version

Killed: 9 经常提示代码签名错误。
也就是说,通过更改安装名称,您修改了二进制文件,从而使它们的代码签名无效(在我的例子中,install_name_tool 警告我这一点)。

要修复它,运行 针对您修改的每个二进制文件执行以下命令:

codesign -s - -f path/to/binary