From 12f0cb35f5b1b71b540c2c0e8cdb6d973a41e4dd Mon Sep 17 00:00:00 2001 From: Home Date: Mon, 30 Mar 2026 04:01:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4jenkins=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=81=E6=B0=B4=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile.ios | 88 +++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/Jenkinsfile.ios b/Jenkinsfile.ios index 03b8577d..ece476e0 100644 --- a/Jenkinsfile.ios +++ b/Jenkinsfile.ios @@ -115,45 +115,55 @@ pipeline { stage('开始归档项目') { steps { - echo "${APP_DIR}/${PROJECT_NAME}.xcodeproj" - sh ''' - # 开始执行 Xcode 归档命令 - xcodebuild archive \\ - # 指定项目文件路径 - -project ${APP_DIR}/${PROJECT_NAME}.xcodeproj \\ - # 指定编译 Scheme - -scheme ${SCHEME_NAME} \\ - # 指定编译环境 Debug/Release - -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}" \\ - # 描述文件 UUID(高版本 Xcode 推荐) - PROVISIONING_PROFILE_SPECIFIER="${PROVISIONING_PROFILE_UUID}" \\ - # 描述文件 UUID(兼容旧版 Xcode) - PROVISIONING_PROFILE="${PROVISIONING_PROFILE_UUID}" \\ - # 开发团队 ID - DEVELOPMENT_TEAM=${DEVELOPMENT_TEAM} \\ - # 指定钥匙串路径(解决 CI 签名权限问题) - OTHER_CODE_SIGN_FLAGS="--keychain ~/Library/Keychains/login.keychain-db" \\ - # 编译所有架构(不只是当前设备架构) - ONLY_ACTIVE_ARCH=NO \\ - # 清空 C 语言额外编译参数,保证环境干净 - OTHER_CFLAGS='' \\ - # 清空 C++ 额外编译参数 - OTHER_CPLUSPLUS_FLAGS='' \\ - # 清空 Swift 额外编译参数 - OTHER_SWIFT_FLAGS='' - ''' + 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=''" + ].join(' ') // 拼接成一行完整命令 + + // 打印最终命令(方便排查) + echo "执行命令:${xcodeCommand}" + + // 执行! + sh(xcodeCommand) + } } } }