#!/bin/bash # SDK 最低版本检查脚本 echo "======================================" echo "检查广告 SDK 的最低支持版本" echo "======================================" echo "" PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' echo "1. 检查 Pods 目录..." if [ ! -d "$PROJECT_DIR/Pods" ]; then echo -e "${RED}✗ Pods 目录不存在,请先运行 pod install${NC}" exit 1 fi echo "" echo "2. 检查各个 SDK 的最低版本要求..." echo "" # 检查函数 check_sdk_version() { local sdk_name=$1 local framework_path=$2 if [ -f "$framework_path" ]; then echo "检查: $sdk_name" # 尝试从 Info.plist 中提取最低版本 min_version=$(plutil -extract MinimumOSVersion raw "$framework_path" 2>/dev/null) if [ $? -eq 0 ] && [ -n "$min_version" ]; then major_version=$(echo "$min_version" | cut -d. -f1) if [ "$major_version" -le 12 ]; then echo -e " ${GREEN}✓${NC} 最低版本: iOS $min_version (支持 iOS 12)" elif [ "$major_version" -eq 13 ]; then echo -e " ${YELLOW}⚠${NC} 最低版本: iOS $min_version (不支持 iOS 12)" else echo -e " ${RED}✗${NC} 最低版本: iOS $min_version (不支持 iOS 12/13)" fi else echo -e " ${YELLOW}?${NC} 无法确定最低版本" fi else echo -e " ${YELLOW}?${NC} 未找到: $sdk_name" fi echo "" } # 检查各个广告 SDK echo "检查 TopOn SDK:" check_sdk_version "AnyThinkSDK" "$PROJECT_DIR/Pods/TPNiOS/core/AnyThinkSDK.xcframework/Info.plist" echo "检查 IronSource SDK:" check_sdk_version "IronSource" "$PROJECT_DIR/Pods/IronSourceSDK/IronSource/IronSource.xcframework/Info.plist" echo "检查 Vungle SDK:" if [ -d "$PROJECT_DIR/Pods/VungleAds" ]; then check_sdk_version "VungleAds" "$PROJECT_DIR/Pods/VungleAds/static/VungleAds.xcframework/Info.plist" fi echo "检查 UnityAds SDK:" if [ -d "$PROJECT_DIR/Pods/UnityAds" ]; then check_sdk_version "UnityAds" "$PROJECT_DIR/Pods/UnityAds/UnityAds.xcframework/Info.plist" fi echo "检查 AppLovin SDK:" if [ -d "$PROJECT_DIR/Pods/AppLovinSDK" ]; then check_sdk_version "AppLovinSDK" "$PROJECT_DIR/Pods/AppLovinSDK/applovin-ios-sdk-13.5.0/AppLovinSDK.xcframework/Info.plist" fi echo "检查 Pangle SDK:" if [ -d "$PROJECT_DIR/Pods/Ads-Global" ]; then check_sdk_version "PAGAdSDK" "$PROJECT_DIR/Pods/Ads-Global/SDK/PAGAdSDK.xcframework/Info.plist" fi echo "" echo "======================================" echo "3. 检查 Podfile 中的平台设置..." echo "======================================" if [ -f "$PROJECT_DIR/Podfile" ]; then platform_line=$(grep "platform :ios" "$PROJECT_DIR/Podfile" | grep -v "^#") if [ -n "$platform_line" ]; then echo -e "${GREEN}✓${NC} 找到平台设置: $platform_line" else echo -e "${YELLOW}⚠${NC} Podfile 中未设置 platform 版本(已被注释或不存在)" fi else echo -e "${RED}✗${NC} 未找到 Podfile" fi echo "" echo "======================================" echo "4. 检查项目的 Deployment Target..." echo "======================================" if [ -f "$PROJECT_DIR/PlayBTopOn.xcodeproj/project.pbxproj" ]; then deployment_target=$(grep "IPHONEOS_DEPLOYMENT_TARGET" "$PROJECT_DIR/PlayBTopOn.xcodeproj/project.pbxproj" | head -1 | grep -o "[0-9.]*" | head -1) if [ -n "$deployment_target" ]; then major=$(echo "$deployment_target" | cut -d. -f1) if [ "$major" -le 12 ]; then echo -e "${GREEN}✓${NC} 项目 Deployment Target: iOS $deployment_target" else echo -e "${YELLOW}⚠${NC} 项目 Deployment Target: iOS $deployment_target (高于 iOS 12)" fi else echo -e "${YELLOW}?${NC} 无法确定 Deployment Target" fi else echo -e "${RED}✗${NC} 未找到项目文件" fi echo "" echo "======================================" echo "建议" echo "======================================" echo "" echo "如果某个 SDK 的最低版本高于 iOS 12:" echo "" echo "方案 1: 将项目的最低版本提高到 iOS 13" echo " - 修改 Podfile: platform :ios, '13.0'" echo " - 运行: pod install" echo " - 在 Xcode 中设置 Deployment Target 为 13.0" echo "" echo "方案 2: 降级到支持 iOS 12 的 SDK 版本" echo " - 查看 SDK 的版本历史文档" echo " - 在 Podfile 中指定旧版本号" echo " - 运行: pod install" echo "" echo "方案 3: 移除不兼容的 SDK" echo " - 在 Podfile 中注释掉对应的 pod" echo " - 运行: pod install" echo "" echo "======================================" echo "接下来的步骤" echo "======================================" echo "" echo "1. 运行 'pod install' 应用 Podfile 的更改" echo "2. 在 Xcode 中设置 AppTrackingTransparency 为 Optional" echo "3. 清理并重新编译项目" echo "4. 查看控制台日志,定位崩溃点" echo "" echo "详细步骤请参考: DEBUG_CRASH_GUIDE.md" echo ""