首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift执行预编译的捆绑程序

使用Swift执行预编译的捆绑程序
EN

Stack Overflow用户
提问于 2020-07-14 14:48:48
回答 1查看 44关注 0票数 0

我正在尝试构建一个使用命令行界面工具来做很多工作的应用程序,我想知道是否有可能在macOS 10.15+上的XCode中捆绑并执行来自Swift的预编译工具?我可以将二进制文件添加到包中,但是该文件是只读的,无法执行。

示例

捆绑包中应该有一个名为cli的二进制文件。

代码语言:javascript
复制
let stdOut = Pipe()
let process = Process()
process.executableURL = Bundle.main.url(forResource: "cli", withExtension: "")!
process.arguments = args
process.standardOutput = stdOut
try! process.run()

错误

代码语言:javascript
复制
Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=4 "The file “cli” doesn’t exist."
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-14 20:21:17

是的,这是可能的。您看到的错误很可能是由于缺少对cli二进制文件的可执行文件权限而导致的。

你能确保这个文件实际上是可执行的吗?您可以只对该文件运行ls -lh cli。输出应如下所示。

代码语言:javascript
复制
ls -lh cli 
-rwxr-xr-x@ 1 user  staff    36K 28 Mai 02:24 cli

如果您的输出缺少x,则文件缺少可执行权限。您可以使用chmod +x cli将它们添加到文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62889523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档