我的应用程序需要一个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]无法访问启动路径
答案 0 :(得分:1)
如果用户不在管理员组中,他们可能无权运行您的帮助应用程序。您可以创建一个没有管理员权限的新用户帐户来测试此理论。