我正在与Jenkins一起构建一个iPhone应用程序,所以在某个时候它需要使用/usr/bin/security。不幸的是詹金斯找不到那个命令。
下面是控制台日志的摘录:
[workspace] $ /usr/bin/security find-identity -p codesigning -v FATAL: Cannot run program "/usr/bin/security" (in directory "/Users/jenkins/.jenkins/jobs/Obfuscated iOS/workspace"): error=2, No such file or directory java.io.IOException: Cannot run program "/usr/bin/security" (in directory "/Users/jenkins/.jenkins/jobs/Obfuscated iOS/workspace"): error=2, No such file or directory
这样的情况通常意味着存在权限问题,因此我尝试了sudo chmod 777 /usr/bin/security,但是构建得到了相同的结果。
此外,当我从终端尝试/usr/bin/security find-identity -p codesigning -v时,它工作得很好。
我如何让Jenkins能够使用这个工具和它可能需要的任何其他iOS工具?
更多信息:
奇怪的是,其他与iOS相关的工具(如/usr/bin/xcodebuild和/usr/bin/agvtool )工作得很好,如下所示:
[workspace] $ /usr/bin/xcodebuild -version Xcode 6.4 Build version 6E35b Fetching marketing version number (CFBundleShortVersionString) from project. [workspace] $ /usr/bin/agvtool mvers -terse1 Found marketing version (CFBundleShortVersionString): 4.0.0. Marketing version (CFBundleShortVersionString) found in project configuration: 4.0.0. Fetching technical version number (CFBundleVersion) from project. [workspace] $ /usr/bin/agvtool vers -terse
关于权限的更多信息:
ls -le产量
-rwxr-xr-x 1 root wheel 224032 Aug 1 20:43 security与xcodebuild等目录中的其他工具相比,这在我看来是正常的。
詹金斯路
我检查了Jenkins系统配置页面,它列出了下面的路径:
/usr/bin:/bin:/usr/sbin:/sbin
在构建步骤中运行是有效的!
如果我用命令/usr/bin/security find-identity -p codesigning -v创建一个只需构建步骤的新作业,那么它就可以正常运行。
这表明该命令在内部由另一个进程运行。
发布于 2015-11-11 16:19:23
出现此问题的原因是"Build output目录“中使用的值:

删除${WORKSPACE}解决了调用/usr/bin/security的问题。
https://stackoverflow.com/questions/33483193
复制相似问题