&引用;“ipa构建”;从命令行通过,但在Jenkins(深圳Xcode iOS应用程序)上失败

&引用;“ipa构建”;从命令行通过,但在Jenkins(深圳Xcode iOS应用程序)上失败,ios,xcode,command-line,jenkins,ipa,Ios,Xcode,Command Line,Jenkins,Ipa,我正在通过commad line从MyApp.xcodeproj构建MyApp.ipa,构建成功。我正在使用RubyGem从命令行构建应用程序。但是,Jenkins中的构建失败,出现以下错误: *** error: Couldn't codesign /Users/administrator/Library/Developer/Xcode/DerivedData///////MyApp.app/Frameworks/libswiftCore.dylib: codesign failed with

我正在通过commad line从MyApp.xcodeproj构建MyApp.ipa,构建成功。我正在使用RubyGem从命令行构建应用程序。但是,Jenkins中的构建失败,出现以下错误:

*** error: Couldn't codesign /Users/administrator/Library/Developer/Xcode/DerivedData///////MyApp.app/Frameworks/libswiftCore.dylib: codesign failed with exit code 1
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-stdlib-tool failed with exit code 1

** ARCHIVE FAILED **
以下生成命令失败:

CopySwiftLibs /Users/administrator/Library/Developer/Xcode/DerivedData///////MyApp.app
我怀疑这个错误与项目签名有关。目前,我正在通过命令行对其进行签名,并通过本地MacOS机器上的命令行成功构建。然而,当我通过Jenkins运行完全相同的命令时,它失败了


请帮助。

我怀疑您的
$path
或其他环境变量(这是一个常见的问题,看起来像您的一样)有问题


Jenkins在一个“干净”的环境(没有任何环境变量)中执行其作业。

假设您的Jenkins构建运行在您通过命令行测试的同一台机器上:

codesign
要求配置文件对IPA进行签名。默认情况下,它们位于此处
~/Library/MobileDevice/Provisioning Profiles

如您所见,
~
是用户的主目录,即
/Users/user\u name\u here/
。该目录上的默认权限通常仅允许该用户访问

Jenkins默认以
Jenkins
用户的身份运行。您需要确保您的
jenkins
用户能够访问配置文件所在的目录。或者,将配置文件移动到用户有权访问的另一个位置,并修改构建工具以在那里查找它们


如果您的Jenkins主/从节点与您使用命令行测试的主机不在同一台Mac计算机上,那么您也必须手动将配置文件复制到该计算机上

解决此问题的最佳方法是:在Keychain Access中将您尝试使用的证书/密钥从“登录”移动到“系统”。您无需一直解锁钥匙链。

谢谢您的提示。更新了路径,但仍然失败。以为是钥匙链被锁了。用“安全解锁钥匙链…”解锁。现在重新启动构建。希望会通过。在更新路径并解锁钥匙链后,最终通过。谢谢。你应该用完整的解决方案回答你自己的问题,并接受它(2天后)。My Jenkins被配置为管理员。Mac机实际上是从机。通过更新$path并解锁钥匙链解决了此问题。谢谢你的建议。我看你已经成功了。请分享您的解决方案和复制的详细步骤好吗?我已经解锁了我的钥匙链,但我不确定应该在path变量中放入什么