update。
This commit is contained in:
parent
37da4172fb
commit
452cbcd1d1
@ -1,122 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "=== 开始构建 UnityFramework XCFramework ==="
|
|
||||||
|
|
||||||
# 目录设置
|
|
||||||
REPO_DIR="/Users/apple/Desktop/work/flutter_unity_pod"
|
|
||||||
STUB_DIR="$REPO_DIR/simulator_stub"
|
|
||||||
BUILD_DIR="$REPO_DIR/build"
|
|
||||||
DEVICE_FRAMEWORK="$REPO_DIR/UnityLibrary/UnityFramework.framework"
|
|
||||||
|
|
||||||
# 清理之前的构建
|
|
||||||
rm -rf "$BUILD_DIR"
|
|
||||||
mkdir -p "$BUILD_DIR"
|
|
||||||
|
|
||||||
echo "1. 编译模拟器 framework..."
|
|
||||||
cd "$STUB_DIR"
|
|
||||||
|
|
||||||
# 编译 arm64 模拟器版本
|
|
||||||
xcrun clang -arch arm64 \
|
|
||||||
-isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) \
|
|
||||||
-target arm64-apple-ios13.0-simulator \
|
|
||||||
-dynamiclib \
|
|
||||||
-o "$BUILD_DIR/UnityFramework_sim_arm64" \
|
|
||||||
-framework Foundation -framework UIKit \
|
|
||||||
-install_name @rpath/UnityFramework.framework/UnityFramework \
|
|
||||||
UnityFrameworkStub.m
|
|
||||||
|
|
||||||
# 编译 x86_64 模拟器版本
|
|
||||||
xcrun clang -arch x86_64 \
|
|
||||||
-isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) \
|
|
||||||
-target x86_64-apple-ios13.0-simulator \
|
|
||||||
-dynamiclib \
|
|
||||||
-o "$BUILD_DIR/UnityFramework_sim_x86_64" \
|
|
||||||
-framework Foundation -framework UIKit \
|
|
||||||
-install_name @rpath/UnityFramework.framework/UnityFramework \
|
|
||||||
UnityFrameworkStub.m
|
|
||||||
|
|
||||||
# 合并模拟器架构
|
|
||||||
echo "2. 合并模拟器架构..."
|
|
||||||
lipo -create \
|
|
||||||
"$BUILD_DIR/UnityFramework_sim_arm64" \
|
|
||||||
"$BUILD_DIR/UnityFramework_sim_x86_64" \
|
|
||||||
-output "$BUILD_DIR/UnityFramework_sim"
|
|
||||||
|
|
||||||
# 创建模拟器 framework 结构
|
|
||||||
echo "3. 创建模拟器 framework 结构..."
|
|
||||||
SIM_FRAMEWORK="$BUILD_DIR/UnityFramework-sim.framework"
|
|
||||||
mkdir -p "$SIM_FRAMEWORK/Headers"
|
|
||||||
mkdir -p "$SIM_FRAMEWORK/Modules"
|
|
||||||
|
|
||||||
# 复制二进制
|
|
||||||
cp "$BUILD_DIR/UnityFramework_sim" "$SIM_FRAMEWORK/UnityFramework"
|
|
||||||
|
|
||||||
# 复制头文件
|
|
||||||
cp -r "$DEVICE_FRAMEWORK/Headers/" "$SIM_FRAMEWORK/Headers/"
|
|
||||||
|
|
||||||
# 创建 module.modulemap
|
|
||||||
cat > "$SIM_FRAMEWORK/Modules/module.modulemap" << 'EOF'
|
|
||||||
framework module UnityFramework {
|
|
||||||
umbrella header "UnityFramework.h"
|
|
||||||
export *
|
|
||||||
module * { export * }
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# 创建 Info.plist
|
|
||||||
cat > "$SIM_FRAMEWORK/Info.plist" << 'EOF'
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>UnityFramework</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.unity3d.framework</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>UnityFramework</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1</string>
|
|
||||||
<key>MinimumOSVersion</key>
|
|
||||||
<string>13.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "4. 创建 XCFramework..."
|
|
||||||
# 创建临时目录来存放不同平台的 framework
|
|
||||||
DEVICE_BUILD="$BUILD_DIR/device"
|
|
||||||
SIM_BUILD="$BUILD_DIR/simulator"
|
|
||||||
mkdir -p "$DEVICE_BUILD" "$SIM_BUILD"
|
|
||||||
|
|
||||||
# 复制真机 framework(保持原名)
|
|
||||||
cp -r "$DEVICE_FRAMEWORK" "$DEVICE_BUILD/"
|
|
||||||
|
|
||||||
echo "4.5. 优化真机 framework 大小(strip 符号表)..."
|
|
||||||
# 移除本地符号和调试信息,保留外部符号(减少约100MB)
|
|
||||||
strip -x "$DEVICE_BUILD/UnityFramework.framework/UnityFramework"
|
|
||||||
echo " 优化后大小: $(du -sh "$DEVICE_BUILD/UnityFramework.framework/UnityFramework" | awk '{print $1}')"
|
|
||||||
|
|
||||||
# 移动模拟器 framework(保持原名)
|
|
||||||
mv "$SIM_FRAMEWORK" "$SIM_BUILD/UnityFramework.framework"
|
|
||||||
|
|
||||||
# 创建 XCFramework
|
|
||||||
xcodebuild -create-xcframework \
|
|
||||||
-framework "$DEVICE_BUILD/UnityFramework.framework" \
|
|
||||||
-framework "$SIM_BUILD/UnityFramework.framework" \
|
|
||||||
-output "$BUILD_DIR/UnityFramework.xcframework"
|
|
||||||
|
|
||||||
echo "5. 替换原来的 framework..."
|
|
||||||
rm -rf "$REPO_DIR/UnityLibrary/UnityFramework.framework"
|
|
||||||
cp -r "$BUILD_DIR/UnityFramework.xcframework" "$REPO_DIR/UnityLibrary/"
|
|
||||||
|
|
||||||
echo "✅ 完成!XCFramework 已创建在: $REPO_DIR/UnityLibrary/UnityFramework.xcframework"
|
|
||||||
echo ""
|
|
||||||
echo "现在需要更新 podspec 以使用 XCFramework"
|
|
||||||
Loading…
x
Reference in New Issue
Block a user