我正在使用 Jenkins 构建一个 iPhone 应用程序,因此在某些时候它需要使用 /usr/bin/security
。遗憾的是 Jenkins 找不到该命令。
这是控制台日志摘录:
[workspace] $/usr/bin/security find-identity -p codesigning -v FATAL:无法运行程序“/usr/bin/security”(在目录“/Users/jenkins/.jenkins/jobs”中/Obfuscated iOS/workspace"): error=2, No such file or directory java.io.IOException: 无法运行程序“/usr/bin/security”(在目录“/Users/jenkins/.jenkins/jobs/Obfuscated iOS/workspace"): error=2, 没有那个文件或目录
类似这样的事情通常意味着存在权限问题,所以我尝试了 sudo chmod 777/usr/bin/security
但构建产生了相同的结果。
此外,当我从终端尝试 /usr/bin/security find-identity -p codesigning -v
时,它工作正常。
如何让 Jenkins 能够使用此工具以及它可能需要的任何其他 iOS 工具?
更多信息:
奇怪的是,其他 iOS 相关工具,如 /usr/bin/xcodebuild
和 /usr/bin/agvtool
工作正常,如下所示:
[工作区] $/usr/bin/xcodebuild -version
Xcode 6.4
构建版本 6E35b
从项目中获取营销版本号 (CFBundleShortVersionString)。
[工作区] $/usr/bin/agvtool mvers -terse1
找到营销版本 (CFBundleShortVersionString):4.0.0。
在项目配置中找到的营销版本 (CFBundleShortVersionString):4.0.0。
从项目中获取技术版本号 (CFBundleVersion)。
[工作区] $/usr/bin/agvtool vers -terse
关于权限的更多信息:
ls -le
产量
-rwxr-xr-x 1 root wheel 224032 Aug 1 20:43 security
与 xcodebuild 等同一目录中的其他工具相比,这对我来说看起来很正常。
Jenkins 路径
我检查了 Jenkins 系统配置页面,它列出了 PATH:
/usr/bin:/bin:/usr/sbin:/sbin
在构建步骤中运行有效!
如果我使用命令 /usr/bin/security find-identity -p codesigning -v
创建一个只有构建步骤的新作业,那么它运行良好。
这表明该命令在内部由另一个进程运行。
最佳答案
关于ios - 如何让 Jenkins 使用 usr/bin/security?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483193/