You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CocoaPods集成Google Cast后,如何运行strip_unused_archs.sh?

解决CocoaPods集成Google Cast后无法运行strip_unused_archs.sh的问题

别担心,我之前也踩过这个坑!用CocoaPods集成Google Cast时,官方脚本的位置和手动集成差异很大,加上Pod目录结构偶尔会变,很容易找不到它。下面给你两种靠谱的解决思路:


方法一:定位Pods中自带的官方脚本

CocoaPods安装的Google Cast SDK其实已经包含了这个脚本,只是路径藏得比较深:

  1. 在Xcode项目导航栏里展开Pods文件夹
  2. 找到GoogleCast(或对应子库,比如GoogleCastCore,取决于你集成的SDK版本)目录
  3. 展开里面的Scripts或Resources子文件夹,就能找到strip_unused_archs.sh

找到后,按以下步骤配置Run Phase:

  • 选中你的App Target,进入Build Phases标签
  • 点击左上角的+号,选择New Run Script Phase
  • 关键操作:把这个Run Script拖到Embed Frameworks步骤的后面(必须先完成框架嵌入,再执行架构剥离)
  • 在脚本输入框里填写脚本的绝对路径,示例:
    "${PODS_ROOT}/GoogleCast/Scripts/strip_unused_archs.sh"
    
    如果路径不对,根据你实际找到的位置调整即可。

方法二:手动创建脚本(更稳妥,避免Pod更新后路径变化)

如果找不到自带的脚本,或者怕Pod更新后路径变更,直接自己写一个更靠谱:

  1. 在你的项目根目录新建Scripts文件夹,创建strip_unused_archs.sh文件
  2. 把官方脚本内容粘贴进去:
    #!/bin/bash
    
    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
    
    # 遍历App包内的所有framework,移除无用架构
    find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
    do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "处理框架:$FRAMEWORK_EXECUTABLE_PATH"
    
    EXTRACTED_ARCHS=()
    
    for ARCH in $ARCHS
    do
    echo "提取架构:$ARCH"
    lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
    EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done
    
    echo "合并架构:${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"
    
    echo "替换原可执行文件"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
    
    done
    
  3. 打开终端,给脚本添加执行权限:
    chmod +x 你的项目路径/Scripts/strip_unused_archs.sh
    
  4. 回到Xcode的Build Phases,添加Run Script Phase(同样要放在Embed Frameworks后面),然后填写脚本路径:
    "${SRCROOT}/Scripts/strip_unused_archs.sh"
    

额外注意事项

  • 仅在Release模式运行:如果不想Debug编译时浪费时间,可以在Run Script里加条件判断,只在Release模式执行:
    if [ "${CONFIGURATION}" = "Release" ]; then
        # 这里放脚本内容或脚本路径
    fi
    
  • 检查Shell设置:确保Run Phase的Shell设置为/bin/bash(默认就是,但可以在Run Phase的下拉菜单里确认)
  • 验证生效情况:编译Release版本后,找到生成的App包,用lipo -info命令检查框架架构,示例:
    lipo -info ~/Library/Developer/Xcode/DerivedData/你的项目/Build/Products/Release-iphoneos/你的App.app/Frameworks/GoogleCast.framework/GoogleCast
    
    输出应该只有你需要的架构(比如arm64),没有模拟器的i386/x86_64。

内容的提问来源于stack exchange,提问作者Fayza Nawaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:14