From d06812b739e1916a411f186a78b403b5236b1da0 Mon Sep 17 00:00:00 2001 From: Home Date: Mon, 30 Mar 2026 03:04:05 +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 | 80 ++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 51 deletions(-) diff --git a/Jenkinsfile.ios b/Jenkinsfile.ios index 121c4610..64edba46 100644 --- a/Jenkinsfile.ios +++ b/Jenkinsfile.ios @@ -4,20 +4,22 @@ pipeline { nodejs 'node22' } environment { - UNIAPP_APP_ID = '__UNI__EDE0E52' - APP_DIR = "Ios/HBuilder-Hello" - PROJECT_NAME = 'HBuilder-Hello' - ASSETS_DIR = "${APP_DIR}/${PROJECT_NAME}/Pandora/apps/${UNIAPP_APP_ID}/www" - // 项目配置 - SCHEME_NAME = 'HBuilder' - CONFIGURATION = 'Release' - ARCHIVE_PATH = "${APP_DIR}//build/HBuilder.xcarchive" //归档文件输出路径 - //项目证书配置 - CERT_DIR='certificate/ios' - P12_FILE="$CERT_DIR/开发证书.p12" - P12_PASSWORD="Kup9dayLY#*" - PROFILE_FILE="$CERT_DIR/jiaixuedev.mobileprovision" - MAC_LOGIN_PWD="667788" + UNIAPP_APP_ID = '__UNI__EDE52' // uni-app 应用ID + APP_DIR = "Ios/HBuilder-Hello" // iOS 项目根目录 + PROJECT_NAME = 'HBuilder-Hello' // 项目名称(xcodeproj 前缀) + ASSETS_DIR = "${APP_DIR}/${PROJECT_NAME}/Pandora/apps/${UNIAPP_APP_ID}/www" // 静态资源目录 + SCHEME_NAME = 'HBuilder' // Xcode 编译 Scheme + CONFIGURATION = 'Release' // 编译模式:Release/Debug + ARCHIVE_PATH = "${APP_DIR}/build/HBuilder.xcarchive" // 归档文件输出路径 + + // ====================== 证书配置 ====================== + CERT_DIR = 'certificate/ios' // 证书文件存放目录 + P12_FILE = "${CERT_DIR}/开发证书.p12" // 开发证书 p12 路径 + P12_PASSWORD = "Kup9dayLY#*" // p12 证书导入密码 + PROFILE_FILE = "${CERT_DIR}/jiaixuedev.mobileprovision" // 描述文件路径 + MAC_LOGIN_PWD = "667788" // Mac 登录密码(解锁钥匙串) + PROVISIONING_PROFILE_SPECIFIER = "jiaixuedev" // 描述文件名称 + DEVELOPMENT_TEAM = "2EP6SRRN43" // 苹果开发者团队 ID } stages { stage('打印环境变量') { @@ -86,9 +88,7 @@ pipeline { -project ${APP_DIR}/${PROJECT_NAME}.xcodeproj \\ -scheme ${SCHEME_NAME} \\ -configuration ${CONFIGURATION} \\ - MARKETING_VERSION=${versionName} \\ - CURRENT_PROJECT_VERSION=${versionCode} \\ - -destination 'generic/platform=iOS' \\ + archive """ @@ -99,45 +99,23 @@ pipeline { sh "rm -rf dist/" // 清理 UniApp 打包生成的 dist 目录 } } - stage('安装iOS证书 & 描述文件') { + stage('开始归档项目') { steps { sh ''' - # 解锁系统钥匙串(必须!) - security unlock-keychain -p ${MAC_LOGIN_PWD} ~/Library/Keychains/login.keychain-db - - # 导入 p12 证书到系统 - security import ${P12_FILE} \\ - -k ~/Library/Keychains/login.keychain-db \\ - -P ${P12_PASSWORD} \\ - -A \\ - -t cert - - # 允许Xcode调用签名 - security set-key-partition-list \\ - -S apple-tool:,apple:,codesign: \\ - -s -k ${MAC_LOGIN_PWD} \\ - ~/Library/Keychains/login.keychain-db - - # 安装描述文件到系统目录 - mkdir -p ~/Library/MobileDevice/Provisioning\\ Profiles - cp ${PROFILE_FILE} ~/Library/MobileDevice/Provisioning\\ Profiles/ - - echo "✅ 证书 + 描述文件 安装完成!" + xcodebuild archive \\ + -project ${APP_DIR}/${PROJECT_NAME}.xcodeproj \\ + -scheme ${SCHEME_NAME} \\ + -configuration ${CONFIGURATION} \\ + -archivePath ${ARCHIVE_PATH} \\ + -destination generic/platform=iOS \\ + MARKETING_VERSION=${versionName} \\ + CURRENT_PROJECT_VERSION=${versionCode} \\ + CODE_SIGN_STYLE=Manual \\ + PROVISIONING_PROFILE_SPECIFIER=${PROVISIONING_PROFILE_SPECIFIER} \\ + DEVELOPMENT_TEAM=${DEVELOPMENT_TEAM} ''' } } -// stage('开始归档项目') { -// steps { -// sh """ -// xcodebuild archive \\ -// -project ${APP_DIR}/${PROJECT_NAME}.xcodeproj \\ -// -scheme ${SCHEME_NAME} \\ -// -configuration ${CONFIGURATION} \\ -// -archivePath ${ARCHIVE_PATH} -// """ -// -// } -// } } post {