【问题标题】:How can I embed CEF3 into my OSX application?如何将 CEF3 嵌入到我的 OSX 应用程序中?
【发布时间】:2015-11-15 23:01:28
【问题描述】:

我喜欢在我的 OS X 项目中使用 Chromium 浏览器而不是 WebKit 浏览器。

  1. 我在https://cefbuilds.com下载了二进制文件
  2. 我使用 cmake 构建了一个 cef.xcodeproj。
  3. 一旦我打开它并想要构建它。它首先给我带来了问题,因为需要覆盖虚拟布尔执行。当我解决了这个错误时,它走得更远,但在以下位置崩溃:

    cefsimple /bin/sh: tools/make_more_helpers.sh: /bin/bash: bad interpreter: Operation not permitted
    make: *** [cefsimple_buildpart_2] Error 126
    Command /bin/sh failed with exit code 2
    

谁能解释我做错了什么?

【问题讨论】:

标签: xcode swift macos browser chromium


【解决方案1】:

在 OS X 10.7.4 及更高版本中,扩展属性被添加到可执行文件(包括 shell 脚本)中,并由您为帐户定义的安全设置处理。例如,检查您的一个构建脚本上的 xattr 可能类似于以下内容:

$ ls -l@ make_more_helpers.sh
-rwxr-xr-x@  1 Hellman  staff  3564 Sep  2 07:02 make_more_helpers.sh
         com.apple.quarantine          23

当 Xcode 尝试执行脚本时(同样取决于您的安全设置),它会查看扩展属性并确定是否允许它执行。如果它发现脚本的创建者没有被批准,你会收到一个错误,例如:

make_more_helpers.sh: /bin/bash: bad interpreter: Operation not permitted

幸运的是,这是一个简单的修复方法,并且有很多方法可以解决它。一种这样的方法是将属于您使用 Xcode 构建的项目的一部分的脚本关联起来。您还可以在允许运行脚本的编辑器中打开脚本并重新保存它,或者只是递归地扫描构建目录以查找具有隔离属性的文件并删除该属性:

xattr -rd com.apple.quarantine /path/to/build

执行此操作后,您应该注意到在您的脚本上执行另一个 ls -l@ 后,@ 应删除权限和 com.apple.quarantine。现在,当您尝试构建项目时,应该允许脚本执行并成功。

https://developer.apple.com/library/mac/documentation/OpenSource/Conceptual/ShellScripting/BeforeYouBegin/BeforeYouBegin.html

【讨论】:

    猜你喜欢
    • 2014-07-10
    • 2012-01-04
    • 2016-01-15
    • 1970-01-01
    • 2013-07-31
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多