首页 > 解决方案 > 如何使用 Xcode 编译 C 程序,以便在沙箱中使用二进制文件?

问题描述

我有一个 Cocoa 应用程序,它运行我包含在项目中的二进制可执行文件,除非我打开沙盒。我想要沙盒,所以我需要一种方法来授权该程序的运行。我有源代码——这个二进制可执行文件是一个大包的一部分,它带有一个 shell 脚本,用于制作软件和一堆其他程序。它在我的 Mac 上使用此脚本成功编译。

我在 stackoverflow 上发现了另一篇文章,其中建议 C 代码可以与应用程序的其余部分一起在 XCode 中编译,并且可以以这种方式执行。

真的吗?我想将 C 代码编译为我的应用程序的一部分并运行它创建的二进制可执行文件。

标签: cswiftxcodesandboxentitlements

解决方案


我知道了。

正如 trojanfoe 所建议的那样,代码设计工作。

codesign -s "Me" theBinary

问题是我的 Swift 线路,

Bundle.main.url(forAuxiliaryExecutable: "theBinary")

我把它改成,

Bundle.main.url(forResource: "theBinary", withExtension: nil)

现在它可以工作了。好吧!只花了我99美元。


推荐阅读