154 lines
5.0 KiB
Bash
Executable File
154 lines
5.0 KiB
Bash
Executable File
#!/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 ""
|