“ipa build”从命令行传递但在Jenkins(深圳Xcode iOS应用程序)上失败

时间:2015-05-26 13:07:18

标签: ios xcode command-line jenkins ipa

我正在通过commad行从MyApp.xcodeproj构建MyApp.ipa,并且构建成功。我正在使用Shenzhen ruby​​ gem从命令行构建应用程序。但是,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

我怀疑错误与项目签名有关。目前我通过命令行使用XSigning对其进行签名,并通过本地MacOS计算机上的命令行成功构建。但是,当我通过Jenkins运行完全相同的命令时,它失败了。

请帮忙。

3 个答案:

答案 0 :(得分:2)

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

codesign要求配置文件签署IPA。默认情况下,这些位于~/Library/MobileDevice/Provisioning Profiles

如您所见,~是用户的主目录,即/Users/user_name_here/。该目录的默认权限通常只允许访问该用户。

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

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

答案 1 :(得分:2)

解决此问题的最佳方法:将您尝试签名的证书/密钥从“登录”移至Keychain Access中的“系统”。您无需继续解锁钥匙串。

答案 2 :(得分:0)

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

詹金斯在"清洁"环境(没有任何环境变量)。