96 lines
3.5 KiB
Bash
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"
|