加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – NSTask:启动app时无法posix_spawn:错误13

发布时间:2020-12-14 17:25:01 所属栏目:百科 来源:网络整理
导读:我的主 Swift应用程序中有一个子应用程序.我做了它,因此它在构建它时会自动复制到主应用程序的Resources文件夹中.这样,我希望能够从主应用程序启动子应用程序的实例. 问题是,我遇到了一个很难调试/找到答案的错误. 这是我的代码: let args = ["--args","-ad
我的主 Swift应用程序中有一个子应用程序.我做了它,因此它在构建它时会自动复制到主应用程序的Resources文件夹中.这样,我希望能够从主应用程序启动子应用程序的实例.

问题是,我遇到了一个很难调试/找到答案的错误.

这是我的代码:

let args = ["--args","-admin_url",site.url,"-login",site.login,"-pass",site.password]
    let helperPath = (NSBundle.mainBundle().pathForResource("App Helper",ofType: "app"))!
    let task = NSTask.init()
    task.launchPath = helperPath
    task.arguments = args
    task.launch()

而错误:

[56490:7218926] Couldn't posix_spawn: error 13

我不知道在哪里寻找,搜索什么.我不知道我做错了什么.
我想知道这个问题是否与子应用程序本身有关.那个子应用程序现在是空的.我将Application is Agent设置为YES.在MainMenu.xib中,我将Visible at launch选项设置为no.
该子应用程序需要在后台完成一些工作,根本不需要任何UI.

谢谢 !

解决方法

不要使用NSTask,使用NSWorkspace:

let helperAppURL = NSBundle.mainBundle().URLForResource("App Helper",withExtension:"app")!

_ = try? NSWorkspace.sharedWorkspace().openURL(helperAppURL,options:[.Default],configuration:[NSWorkspaceLaunchConfigurationArguments :
            ["--args",site.password]])

在上面的代码中,为简洁起见,我忽略了openURL()命令的结果,但实际上它可以返回表示任务的NSRunningApplication实例.

要跟踪您启动的帮助程序应用程序的实例,可以在适当类型的集合类中保留对此NSRunningApplication的引用,并在时间到来时调用其terminate()方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读