提交jenkins自动化流水线
This commit is contained in:
+49
-39
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user