在与Blue Ocean合作时,如何在Xcode Integration插件中以hudson.util.Secret格式提供keychainPwd?

时间:2019-06-26 05:53:49

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-blueocean

我们使用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列。

1 个答案:

答案 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

您要查找的是第一个链接的更改,但是您可能需要通过第二个链接中的信息批准脚本。