#!/bin/bash # Usage: ./switch-channel.sh # channel: googleplay | flexion | rustore # # 切换渠道后重新用 Unity 打 Android 包即可打出对应渠道的 APK。 # 脚本会同步:AAR、Gradle 配置、AndroidManifest、Java 文件(ConfigManager、ChannelHelpers 等) CHANNEL=${1:-googleplay} SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" CHANNEL_DIR="$SCRIPT_DIR/$CHANNEL" PROJ_DIR="$SCRIPT_DIR/../../sdk-intergration" TYSDK_PLUGINS="$PROJ_DIR/Packages/tysdk/Plugins/Android" ASSETS_PLUGINS="$PROJ_DIR/Assets/Plugins/Android" # 校验渠道目录 if [ ! -d "$CHANNEL_DIR" ]; then echo "ERROR: Unknown channel '$CHANNEL'. Available: googleplay, flexion, rustore" exit 1 fi echo "=== Switching to channel: $CHANNEL ===" # 1. Sync channel AAR to tysdk package (only tuyoosdk, gasdk stays permanently) echo "[AAR] Syncing tuyoosdk to $TYSDK_PLUGINS" find "$TYSDK_PLUGINS" -maxdepth 1 -name "tuyoosdk_*.aar" -delete cp "$CHANNEL_DIR/Plugins/Android/"*.aar "$TYSDK_PLUGINS/" 2>/dev/null # 2. Sync Gradle + Manifest to Assets/Plugins/Android echo "[Config] Syncing gradle/manifest to $ASSETS_PLUGINS" for f in "$CHANNEL_DIR"/*.gradle "$CHANNEL_DIR"/*.properties "$CHANNEL_DIR"/AndroidManifest.xml; do [ -f "$f" ] && cp "$f" "$ASSETS_PLUGINS/" done # 3. Sync Java files to tysdk package echo "[Java] Syncing ConfigManager + ChannelHelpers to $TYSDK_PLUGINS" for f in "$CHANNEL_DIR"/*.java; do [ -f "$f" ] && cp "$f" "$TYSDK_PLUGINS/" done echo "=== Done. Channel: $CHANNEL ===" echo "" echo "Next: Open Unity and build Android APK."