Files
waf-platform/HttpDNSSDK/sdk/ios/build_xc_framework.sh
2026-03-05 02:44:43 +08:00

60 lines
1.8 KiB
Bash

#!/bin/bash
# ---------------------------------------------------------------
# build_xc_framework.sh
# Build NewHttpDNS.xcframework (device + simulator)
# Usage: sh build_xc_framework.sh
# ---------------------------------------------------------------
set -euo pipefail
SCHEME="NewHttpDNS"
PROJECT="NewHttpDNS.xcodeproj"
CONFIGURATION="Release"
FRAMEWORK_NAME="NewHttpDNS"
BUILD_DIR="$(pwd)/Build"
ARCHIVE_IOS="${BUILD_DIR}/ios.xcarchive"
ARCHIVE_SIM="${BUILD_DIR}/ios-simulator.xcarchive"
OUTPUT_XCF="${BUILD_DIR}/${FRAMEWORK_NAME}.xcframework"
echo "==> Cleaning old build artifacts..."
rm -rf "${BUILD_DIR}"
mkdir -p "${BUILD_DIR}"
# ---- 1. Archive: iOS device (arm64) ----
echo "==> Archive: iOS device (arm64)..."
xcodebuild archive \
-project "${PROJECT}" \
-scheme "${SCHEME}" \
-configuration "${CONFIGURATION}" \
-destination "generic/platform=iOS" \
-archivePath "${ARCHIVE_IOS}" \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
ENABLE_MODULE_VERIFIER=NO \
| tail -1
# ---- 2. Archive: iOS Simulator (arm64 + x86_64) ----
echo "==> Archive: iOS Simulator (arm64 + x86_64)..."
xcodebuild archive \
-project "${PROJECT}" \
-scheme "${SCHEME}" \
-configuration "${CONFIGURATION}" \
-destination "generic/platform=iOS Simulator" \
-archivePath "${ARCHIVE_SIM}" \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
ENABLE_MODULE_VERIFIER=NO \
| tail -1
# ---- 3. Create XCFramework ----
echo "==> Creating XCFramework..."
xcodebuild -create-xcframework \
-framework "${ARCHIVE_IOS}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
-framework "${ARCHIVE_SIM}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
-output "${OUTPUT_XCF}"
echo ""
echo "=========================================="
echo " Done! Output: ${OUTPUT_XCF}"
echo "=========================================="