添加Chromium Embedded Framework后,代码签名失败

时间:2015-02-26 19:26:38

标签: macos chromium-embedded

我创建了一个简单的Cocoa Objective-C项目来试验CEF(Chromium Embedded Framework)。我复制了文件" Chromium Embedded Framework.framework"在我的项目中,将其添加为嵌入式二进制文件,如下所示:

enter image description here

从那时起,我的编译在代码签名时失败并出现此错误:

CodeSign /Users/pupeno/Library/Developer/Xcode/DerivedData/cefobjc-bxtruyemnyagwwgdejtzuxngovsr/Build/Products/Debug/cefobjc.app/Contents/Frameworks/Chromium\ Embedded\ Framework.framework/Versions/A
    cd /Users/pupeno/Projects/macninja-demos/cefobjc
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate

Signing Identity:     "-"

    /usr/bin/codesign --force --sign - --preserve-metadata=identifier,entitlements,resource-rules /Users/pupeno/Library/Developer/Xcode/DerivedData/cefobjc-bxtruyemnyagwwgdejtzuxngovsr/Build/Products/Debug/cefobjc.app/Contents/Frameworks/Chromium\ Embedded\ Framework.framework/Versions/A

Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)!
/Users/pupeno/Library/Developer/Xcode/DerivedData/cefobjc-bxtruyemnyagwwgdejtzuxngovsr/Build/Products/Debug/cefobjc.app/Contents/Frameworks/Chromium Embedded Framework.framework/Versions/A: No such file or directory
Command /usr/bin/codesign failed with exit code 1

enter image description here

为什么会发生这种情况或如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

框架是Cocoa中具有不同版本的分层目录,您必须为框架创建一个主要版本,以确保您的框架可以正确签名。 众所周知,CEF框架的结构与符号机制不相容,与预期的结构不同。所以我们需要修改它,如下所示:A hierarchical directory of cocoa framework

此外,您需要分别签署框架中包含的lib或插件,我们可能会像这样编码......

codesign -s" $ {CODE_SIGN_IDENTITY}" -f" $ {PLUGIN_PATH}"