diff --git a/Jenkinsfile-ios b/Jenkinsfile-ios index f11ec853..32d307a2 100644 --- a/Jenkinsfile-ios +++ b/Jenkinsfile-ios @@ -225,23 +225,36 @@ pipeline { //).trim() JWT_TOKEN = sh( script: ''' - node -e " + node -e + const fs = require('fs'); const jwt = require('jsonwebtoken'); - const privateKey = `''' + p8 + '''`; + + // 从 Jenkins 环境变量获取 + const API_KEY = process.env.API_KEY; + const API_ISSUER = process.env.API_ISSUER; + const P8_FILE = process.env.P8_FILE; + + // 读取 p8 私钥 + const privateKey = fs.readFileSync(P8_FILE, 'utf8'); + + // 生成 JWT(苹果标准格式) const token = jwt.sign( - { - iss: '""' + API_ISSUER + '""', - exp: Math.floor(Date.now() / 1000) + 1200, - aud: 'appstoreconnect-v1' - }, - privateKey, - { - algorithm: 'ES256', - header: { kid: '""' + API_KEY + '""' } - } + { + iss: API_ISSUER, + exp: Math.floor(Date.now() / 1000) + 1200, // 20分钟 + aud: 'appstoreconnect-v1' + }, + privateKey, + { + algorithm: 'ES256', + header: { + kid: API_KEY, + alg: 'ES256' + } + } ); + // 输出 JWT(Jenkins 会捕获这个值) console.log(token); - " ''', returnStdout: true ).trim()