如何修复带有无效签名的dylib?

How to fix dylib with invalid signature?

昨天我在自动代码签名后 运行 我的应用遇到了问题。看我昨天的问题posthere

在花了一些时间调查问题后,发现框架证书以某种方式损坏。

解决方案是修复框架的无效签名,下面是具体操作方法。

P.S。我们可以肯定的一件事是,我们确实勾选了 登录副本 复选框。

注意:VideoBuilderLibrary 是我们构建的自定义框架。

测试code sign状态,

# Replace the framework to yours
codesign -v 
frameworks/VideoBuilderLibrary.framework/Frameworks/libavutil.55.dylib
[no output]

如有无效签名,

codesign -v 
frameworks/VideoBuilderLibrary.framework/Frameworks/libavutil.55.dylib
frameworks/VideoBuilderLibrary.framework/Frameworks/libavutil.55.dylib: 
invalid signature (code or signature have been modified)
In architecture: x86_64

要退出框架中的所有 dylib 文件并修复此问题,下面的 运行 命令将 "YOUR CERTIFICATE NAME" 替换为您的证书文件名,

cd frameworks/VideoBuilderLibrary.framework/Frameworks
ls | xargs codesign -f -s "YOUR CERTIFICATE NAME"