我创建了一个简单的Cocoa Objective-C项目来试验CEF(Chromium Embedded Framework)。我复制了文件" Chromium Embedded Framework.framework"在我的项目中,将其添加为嵌入式二进制文件,如下所示:
从那时起,我的编译在代码签名时失败并出现此错误:
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
为什么会发生这种情况或如何解决这个问题?
答案 0 :(得分:0)
框架是Cocoa中具有不同版本的分层目录,您必须为框架创建一个主要版本,以确保您的框架可以正确签名。 众所周知,CEF框架的结构与符号机制不相容,与预期的结构不同。所以我们需要修改它,如下所示:A hierarchical directory of cocoa framework
此外,您需要分别签署框架中包含的lib或插件,我们可能会像这样编码......
codesign -s" $ {CODE_SIGN_IDENTITY}" -f" $ {PLUGIN_PATH}"