Files
tra-app/build-config/ios自动打包脚本/ready_build_ios.sh
T
2025-09-08 10:35:25 +08:00

96 lines
3.5 KiB
Bash

#!/bin/bash
# ==============================================
# 配置参数 - 请根据实际情况修改以下参数
# ==============================================
# 钥匙串配置
KEYCHAIN_PASSWORD="1234567" # 钥匙串密码
KEYCHAIN_PATH="$HOME/Library/Keychains/login.keychain-db" # 钥匙串路径
# 项目路径配置
PROJECT_DIR="$HOME/Desktop/lx_uniapp/build/git_work_code/Ios/HBuilder-Hello" # 项目目录
PROJECT_NAME="HBuilder-Hello.xcodeproj" # Xcode项目文件名
SCHEME_NAME="HBuilder" # 构建方案名称
CONFIGURATION="Release" # 构建配置
# 构建输出配置
BUILD_DIR="$HOME/Desktop/lx_uniapp/build" # 构建输出目录
ARCHIVE_NAME="HBuilder.xcarchive" # 归档文件名
IPA_DIR_NAME="ipa_production" # IPA输出目录名
DERIVED_DATA_DIR="$HOME/Library/Developer/Xcode/DerivedData/*" # 衍生数据目录
# 版本配置
MARKETING_VERSION="$1" # 市场版本号
CURRENT_PROJECT_VERSION="$2" # 项目内部版本号
# 签名配置
CODE_SIGN_IDENTITY="Apple Distribution: Bank of Jilin Co., Ltd. (2EP6SRRN43)" # 签名标识
PROVISIONING_PROFILE="e3487fe1-19dc-4fc7-90df-11caf27da0c6" # 配置文件UUID
DEVELOPMENT_TEAM="2EP6SRRN43" # 开发团队ID
CODE_SIGNING_REQUIRED="YES" # 是否需要签名
# 导出配置
EXPORT_OPTIONS_PLIST="$BUILD_DIR/ExportOptions_Production.plist" # 导出配置plist路径
# ==============================================
# 错误处理函数
error_exit() {
echo "❌ $1"
exit 1
}
# 0. 解锁钥匙串并授予权限
echo "🔑 解锁钥匙串..."
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" || {
error_exit "钥匙串解锁失败"
}
# 1. 进入项目目录
echo "📂 进入项目目录: $PROJECT_DIR"
cd "$PROJECT_DIR" || {
error_exit "无法进入项目目录: $PROJECT_DIR"
}
# 2. 清理旧构建
echo "🧹 清理旧构建..."
xcodebuild -project "$PROJECT_NAME" -scheme "$SCHEME_NAME" -configuration "$CONFIGURATION" clean || {
error_exit "清理构建失败"
}
# 3. 删除上次构建内容
echo "🗑️ 删除上次构建内容..."
setopt rm_star_silent nullglob
rm -rf "$BUILD_DIR/$ARCHIVE_NAME" "$BUILD_DIR/$IPA_DIR_NAME" "$DERIVED_DATA_DIR"
unsetopt rm_star_silent nullglob # 恢复默认设置
# 4. 归档项目
echo "📦 开始归档项目..."
xcodebuild -project "$PROJECT_NAME" \
-scheme "$SCHEME_NAME" \
-configuration "$CONFIGURATION" \
-archivePath "$BUILD_DIR/$ARCHIVE_NAME" \
MARKETING_VERSION="$MARKETING_VERSION" \
CURRENT_PROJECT_VERSION="$CURRENT_PROJECT_VERSION" \
-destination 'generic/platform=iOS' \
CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \
DEVELOPMENT_TEAM="$DEVELOPMENT_TEAM" \
CODE_SIGNING_REQUIRED="$CODE_SIGNING_REQUIRED" \
OTHER_CFLAGS="" \
OTHER_CPLUSPLUS_FLAGS="" \
OTHER_SWIFT_FLAGS="" \
archive || {
error_exit "项目归档失败"
}
# 5. 导出IPA文件
echo "📤 导出IPA文件..."
xcodebuild -exportArchive \
-archivePath "$BUILD_DIR/$ARCHIVE_NAME" \
-exportPath "$BUILD_DIR/$IPA_DIR_NAME" \
-exportOptionsPlist "$EXPORT_OPTIONS_PLIST" || {
error_exit "IPA导出失败"
}
echo "🎉 构建完成!IPA文件已导出至: $BUILD_DIR/$IPA_DIR_NAME"