OS X codesign嵌套代码被修改或无效

时间:2016-02-29 11:06:23

标签: macos qt4 codesign

Qt4应用程序,其捆绑结构如下:

QtCore.framework/
    QtCore  -> Versions/Current/QtCore
    Resources    -> Versions/Current/Resources
    Versions/
        4/
            QtCore
            Resources/
                Info.plist
        Current  -> 4

codesign --verbose --force --deep --sign "Certificate Name" Test.app

结果:Test.app:带有Mach-O thin的签名包(x86_64)[...] "证书名称"是Comodo代码签名证书

codesign --verify -vvvv Test.app
Test.app: nested code is modified or invalid

codesign --verbose --verify Test.app/Contents/Frameworks/QtCore.framework
Test.app/Contents/Frameworks/QtCore.framework: valid on disk
Test.app/Contents/Frameworks/QtCore.framework: does not satisfy its designated Requirement

P.S。我试图手动签署所有框架/ dylib,没有选项--deep和相同的结果。

1 个答案:

答案 0 :(得分:0)

在内容版本为4的内部版本中创建一个名为A的文件夹,将符号链接更改为A文件夹,特别是current-> A

现在尝试签名,它可能会签名。但问题可能是二进制,它会使用不同于A的框架,你可以用otool -L检查(注意大L而不是小l)

要更改它,您需要使用install_name_tool

祝你好运,玩得开心