我们使用Blue Ocean创建了Jenkins Pipeline作为代码,并且直到最近都运行良好。 现在,当我们尝试为Blue Ocean中的Xcode集成插件传递keychainPwd的参数时,它会给我们带来错误,并且iOS的Blue Ocean Pipeline无法正常工作。
我们尝试使用凭据的秘密密钥,并尝试将其作为参数传递,但是它不起作用。
environment {
Keychain_pwd_id = credentials('test')
}
此处已创建“测试”密钥。 我们也尝试了以下方法:
keychainPwd:hudson.util.Secret.fromString(“ $ {Keychain_pwd_id}”)
pipeline {
environment {
Keychain_pwd_id = credentials('test')
}
stages {
stage('Xcode Build') {
steps {
xcodeBuild(buildIpa: true, bundleID: 'com.xxx.xxxxxxxxxx', cleanBeforeBuild: true, configuration: 'Release', developmentTeamID: 'xxxxxxxx', developmentTeamName: 'xxxxxxxxxxxxxxxxxxxxx', ipaExportMethod: ‘enterprise’, ipaName: ‘xxxxxxxxxxx’, ipaOutputDirectory: 'build', keychainName: 'login', keychainPath: '${HOME}/Library/Keychains/login.keychain', keychainPwd: "${Keychain_pwd_id}, manualSigning: true, provisioningProfiles: [[provisioningProfileAppId: 'xxxxxxxxxxxxxxxxxxx', provisioningProfileUUID: 'xxxxxxxxxxxxxxxxxxxxxxxxxx']], unlockKeychain: true, xcodeSchema: ‘xxxxxxxxxxxxxxxx
}
}
}
}
预期参数“ keychainPwd”为“ hudson.util.Secret类”,但类型为java.lang.String类型的“ $ {keychainPwd}”,而不是@第12行,第407列。
答案 0 :(得分:0)
我目前正在解决同一问题。似乎xcodebuild插件最近已更新以要求它。
我能够通过以下答案得到这座建筑:How do i compare user inputed password to credentials passphrase
Jenkins CI Pipeline Scripts not permitted to use method groovy.lang.GroovyObject
您要查找的是第一个链接的更改,但是您可能需要通过第二个链接中的信息批准脚本。