首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins无法从项目文件夹运行xcodebuild

Jenkins无法从项目文件夹运行xcodebuild
EN

Stack Overflow用户
提问于 2012-03-20 21:39:31
回答 2查看 8.1K关注 0票数 7

我试图为iOS应用程序设置一个CI环境。到目前为止,我已经从命令行获得了xcodebuild来正确构建测试构建,但是当Jenkins试图执行它时,我在控制台中读取了以下内容:

代码语言:javascript
复制
Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/jobs/Unit Tests/workspace
Working directory is /Users/iosappdev/Documents/Xcode Projects/rules.
[rules] $ /usr/bin/xcodebuild -version
FATAL: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied
java.io.IOException: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:707)
    at hudson.Launcher$ProcStarter.start(Launcher.java:338)
    at hudson.Launcher$ProcStarter.join(Launcher.java:345)
    at au.com.rayh.XCodeBuilder.perform(XCodeBuilder.java:224)

有什么想法吗?我对詹金斯相当陌生,但我已经尽了最大努力用谷歌付回答这个问题,但没有结果。我最初在手动安装Jenkins (从技术上讲是自制的)时遇到了这个问题,但是最近使用了OSX安装程序,导致了同样的错误。

我猜想这与Unix/Linux/OSX权限有关,而不是Jenkins/Xcode,但没有足够的专业知识来确定这一点。

编辑

项目目录权限设置为775。

我还尝试将所有权更改为Jenkins运行的用户。

下面是当我试图以守护进程用户的身份运行xcodebuild时的输出($ sudo -u守护进程xcodebuild):

代码语言:javascript
复制
dev-imac:rules iosappdev$ sudo -u daemon xcodebuild
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
2012-03-21 11:05:46.161 xcodebuild[1411:70b] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1196/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/Xcode3Model/Xcode3Project.m:266
Details:  Assertion failed: [directoryPath isAbsolutePath]
Object:   <Xcode3Project>
Method:   +projectFilesInDirectory:
Thread:   <NSThread: 0x40010a260>{name = (null), num = 1}
Hints: None
Backtrace:
  0  0x000000010025b85f -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DVTFoundation)
  1  0x000000010025b6b5 _DVTAssertionFailureHandler (in DVTFoundation)
  2  0x00000001011559bc +[Xcode3Project projectFilesInDirectory:] (in DevToolsCore)
  3  0x00000001008a424b -[Xcode3CommandLineBuildTool _resolveInputOptions] (in Xcode3Core)
  4  0x00000001008aa097 -[Xcode3CommandLineBuildTool run] (in Xcode3Core)
  5  0x00000001001d7db6 (in xcodebuild)
  6  0x00000001001d7c2c (in xcodebuild)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-20 21:51:28

确保Jenkins运行的用户具有正确的权限。转到http://[jenkins_server]/systemInfo并搜索user.name

票数 5
EN

Stack Overflow用户

发布于 2012-03-27 21:15:25

上面写着:

Building in workspace /Users/Shared/Jenkins/Home/jobs/Unit Tests/workspace Working directory is /Users/iosappdev/Documents/Xcode Projects/rules. [rules] $ /usr/bin/xcodebuild -version

不知何故,作业执行跳入了“错误”目录。也许您已经设置了带有自定义工作区的作业?Jenkins可能是作为用户守护进程运行的,因此无法访问用户iosappdev下的文件。

使用Jenkins的通常方法是将源代码提交到版本控制存储库。然后将Jenkins作业配置为将代码从存储库签出到Jenkins工作区,并在那里构建它,然后报告结果。

我不确定如何让Jenkins直接跳入您的工作目录并在那里进行构建。如果这真的是你想要做的,你需要告诉我们为什么你认为这是一个好主意。

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

https://stackoverflow.com/questions/9795410

复制
相关文章

相似问题

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