#!/usr/bin/env bash # iOS Release IPA 打包脚本 # # Usage: # bash scripts/build_ios.sh # 使用默认 config(dev 配置) # bash scripts/build_ios.sh prod # 写入 prod 配置后打包(CI 使用) # # Via melos: # melos run build:ios # # 产物路径: # IPA → apps/im_app/build/ios/ipa/im_app.ipa # 符号表 → apps/im_app/build/debug-info/ios/(保留用于线上崩溃还原堆栈) # # 前置条件: # - macOS 环境,已安装 Xcode # - 已配置签名证书(Release scheme 需绑定正式 Provisioning Profile) set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(dirname "$SCRIPT_DIR")" APP_DIR="$ROOT_DIR/apps/im_app" CONFIG_FILE="$APP_DIR/config/config.json" DEBUG_INFO_DIR="$APP_DIR/build/debug-info/ios" # ── 可选:写入 prod 配置 ──────────────────────────────────────────────────── if [ "${1:-}" = "prod" ]; then echo "==> Writing prod config..." cat > "$CONFIG_FILE" < Building iOS release IPA..." cd "$APP_DIR" flutter build ipa \ --release \ --no-pub \ --dart-define-from-file=config/config.json \ --split-debug-info="$DEBUG_INFO_DIR" \ --obfuscate echo "" echo "✓ IPA: $APP_DIR/build/ios/ipa/im_app.ipa" echo "✓ 符号表: $DEBUG_INFO_DIR(请妥善保存,用于线上崩溃堆栈还原)"