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) + } } } }