NSTask的“发布路径无法访问”

时间:2012-01-12 03:13:20

标签: objective-c cocoa path launch nstask

我的应用程序需要一个dylib文件位于/ usr / lib /中。如果不存在,应用程序将dylib从应用程序资源目录复制到/ usr / lib /。为此,我使用了一个帮助工具,它调用/ usr / bin / sudo。

尽管此应用程序在许多系统上都能正常运行,但我刚收到一个错误报告,其中应用程序显然无法找到辅助工具的启动路径。

有没有人有任何想法为什么这可以在许多系统上运行,但只打破一个?

代码:

if (!libraryExists) {
    NSLog(@"dylib does not exist at usr/lib. Launching helper tool to duplicate dylib in application directory\n");         
    NSArray *args = [NSArray arrayWithObjects:helperToolPath, @"setup", nil];
    [NSTask launchedTaskWithLaunchPath:helperToolPath arguments:args];  
}

日志:

2012-01-11 09:53:59.008应用程序[1860:b07]辅助工具路径设置为:/Users/xx/Downloads/Application.app/Contents/Resources/HelperTool

2012-01-11 09:54:00.585应用程序[1860:b07]在usr / lib中不存在dylib。启动辅助工具以从应用程序目录复制dylib

2012-01-11 09:54:00.587应用程序[1860:b07]无法访问启动路径

1 个答案:

答案 0 :(得分:1)

如果用户不在管理员组中,他们可能无权运行您的帮助应用程序。您可以创建一个没有管理员权限的新用户帐户来测试此理论。