JLBA202505130001_关于吉林银行新建AI智能培训系统的需求_完善代码规范

This commit is contained in:
田岩
2026-03-30 16:23:21 +08:00
parent 0b8c924e0c
commit d9818a7160
+1 -135
View File
@@ -82,146 +82,12 @@ pipeline {
echo "✅ 版本号:${env.versionCode}"
}
}
stage('安装证书 & 描述文件') {
steps {
echo "# =============== 安装 p12 证书 ==============="
sh '''
security unlock-keychain -p ${MAC_LOGIN_PWD} ~/Library/Keychains/login.keychain-db >/dev/null 2>&1
security import ${P12_FILE} -k ~/Library/Keychains/login.keychain-db -P ${P12_PASSWORD} -A >/dev/null 2>&1
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${MAC_LOGIN_PWD} ~/Library/Keychains/login.keychain-db >/dev/null 2>&1
'''
echo "# =============== 安装描述文件 ==============="
sh '''
mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
cp "${PROFILE_FILE}" "$HOME/Library/MobileDevice/Provisioning Profiles/"
'''
}
}
stage('打包uniapp') {
steps {
sh "npm run build:app-plus:${env.BRANCH_NAME}"
}
}
stage('复制UniApp资源到目录') {
steps {
echo "开始复制 dist 资源到 ${ASSETS_DIR}"
// 先创建目标目录(防止目录不存在报错)
sh "mkdir -p ${ASSETS_DIR}"
// 把 dist 里所有文件 复制 到安卓资源目录(推荐)
sh "cp -rf dist/build/app/* ${ASSETS_DIR}/"
echo "✅ 资源复制完成"
}
}
stage('️清理旧构建内容') {
steps {
sh """
xcodebuild clean \\
-project ${APP_DIR}/${PROJECT_NAME}.xcodeproj \\
-scheme ${SCHEME_NAME} \\
-configuration ${CONFIGURATION}
"""
}
}
stage('创建SDK软链接') {
steps {
sh '''
# 删除旧的软链接/目录
rm -rf "${TARGET_LINK}"
# 创建软链接(不进入任何目录)
ln -s "${SOURCE_SDK}" "${TARGET_LINK}"
# 验证链接是否生效
ls -la "${TARGET_LINK}"
'''
}
}
stage('✅ 开始归档(静默模式)') {
steps {
script {
// Groovy 里拼接命令,随便写注释,不会影响 shell
def xcodeCommand = [
'xcodebuild archive',
// 项目路径
"-project ${APP_DIR}/${PROJECT_NAME}.xcodeproj",
// Scheme 配置
"-scheme ${SCHEME_NAME}",
// 编译模式 Release/Debug
"-configuration ${CONFIGURATION}",
// 归档输出路径
"-archivePath ${ARCHIVE_PATH}",
// 平台通用 iOS
"-destination generic/platform=iOS",
// 版本号
"MARKETING_VERSION=${versionName}",
"CURRENT_PROJECT_VERSION=${versionCode}",
// 手动签名
"CODE_SIGN_STYLE=Manual",
"CODE_SIGN_IDENTITY='${CERTIFICATE_NAME}'",
"PROVISIONING_PROFILE_SPECIFIER='${PROVISIONING_PROFILE_UUID}'",
"PROVISIONING_PROFILE='${PROVISIONING_PROFILE_UUID}'",
"DEVELOPMENT_TEAM='${DEVELOPMENT_TEAM}'",
// 钥匙串
"OTHER_CODE_SIGN_FLAGS='--keychain ~/Library/Keychains/login.keychain-db'",
// 编译所有架构
"ONLY_ACTIVE_ARCH=NO",
// 清空编译参数
"OTHER_CFLAGS=''",
"OTHER_CPLUSPLUS_FLAGS=''",
"OTHER_SWIFT_FLAGS=''",
"> /dev/null 2>&1"
].join(' ') // 拼接成一行完整命令
// 打印最终命令
echo "执行命令:${xcodeCommand}"
// 执行!
sh(xcodeCommand)
}
}
}
stage('✅ 开始导出 IPA安装包') {
steps {
sh '''
xcodebuild -exportArchive \\
-archivePath ${ARCHIVE_PATH} \\
-exportPath ${APP_DIR}/build \\
-exportOptionsPlist ${EXPORT_OPTIONS_PLIST} \\
-allowProvisioningUpdates
'''
}
}
stage('🚀 验证并上传 TestFlight') {
steps {
echo "✅ 开始验证 IPA 有效性"
sh '''
mkdir -p $HOME/private_keys
cp -f "${P8_FILE}" $HOME/private_keys/
'''
// 1. 先验证 IPA(必须这一步,提前拦截错误)
sh """
xcrun altool --validate-app \\
--file ${APP_DIR}/build/${SCHEME_NAME}.ipa \\
--type ${API_TYPE} \\
--apiKey ${API_KEY} \\
--apiIssuer ${API_ISSUER}
"""
echo "✅ IPA 验证成功!开始上传到 TestFlight"
echo "🎉 全部完成!请到 App Store Connect TestFlight 查看构建"
}
}
stage('🔐 生成 JWT') {
steps {
script {
JWT_TOKEN = sh(
script: 'node scripts/generate-asc-jwt.js',
script: "node ${CERT_DIR}/generate-asc-jwt.js",
returnStdout: true
).trim()
}