ios_sdk_copy.sh 1.38 KB
#!/bin/bash

set -euo pipefail

# 使用前注意:doublefeel_flutter 和 hippo 需要位于同一目录下。
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_SDK_DIR="$SCRIPT_DIR/SDK/iOS_SDK"
SOURCE_RUNNER_DIR="$SCRIPT_DIR/ios/Runner"

HIPPO_PROJECT_DIR="$SCRIPT_DIR/../hippo/hippo"
TARGET_SDK_DIR="$SCRIPT_DIR/../hippo/PodLocal/Flutter/SDK"
TARGET_PIGEON_DIR="$HIPPO_PROJECT_DIR/Pigeon"

if [ ! -d "$SOURCE_SDK_DIR" ]; then
    echo "iOS SDK目录不存在:$SOURCE_SDK_DIR"
    exit 1
fi

if [ ! -d "$HIPPO_PROJECT_DIR" ]; then
    echo "hippo项目目录不存在:$HIPPO_PROJECT_DIR"
    exit 1
fi

if [ -d "$TARGET_SDK_DIR" ]; then
    echo "目标SDK目录已存在,正在替换..."
    rm -rf "$TARGET_SDK_DIR"
else
    echo "目标SDK目录不存在,正在新增..."
fi

mkdir -p "$(dirname "$TARGET_SDK_DIR")" "$TARGET_PIGEON_DIR"
cp -R "$SOURCE_SDK_DIR" "$TARGET_SDK_DIR"

echo "正在复制GeneratedPluginRegistrant文件..."
cp -f \
    "$SOURCE_RUNNER_DIR/GeneratedPluginRegistrant.h" \
    "$SOURCE_RUNNER_DIR/GeneratedPluginRegistrant.m" \
    "$HIPPO_PROJECT_DIR/"

echo "正在复制Pigeon Api文件..."
pigeon_api_files=("$SOURCE_RUNNER_DIR"/Pigeon/*Api.swift)
if [ ! -e "${pigeon_api_files[0]}" ]; then
    echo "未找到Pigeon Api文件:$SOURCE_RUNNER_DIR/Pigeon/*Api.swift"
    exit 1
fi
cp -f "${pigeon_api_files[@]}" "$TARGET_PIGEON_DIR/"

echo "操作完成。"