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

创建包含opencv2.framework的foo.framework时module缺失,如何自动嵌入module文件夹?

解决方案:自动复制完整opencv2.framework到foo.framework内部

步骤1:打开foo.framework的构建项目

在Xcode中打开用于生成foo.framework的项目,选中对应target。

步骤2:添加Run Script构建阶段

  • 切换到Build Phases标签页
  • 点击左上角+按钮,选择New Run Script Phase
  • 将该阶段拖拽到Embed Frameworks之后,确保在打包流程的后期执行复制操作

步骤3:编写复制脚本

在Run Script的输入框中粘贴以下脚本,根据你的项目路径调整变量值:

# 定义关键变量
FRAMEWORK_NAME="foo"
EMBEDDED_FRAMEWORK="opencv2"

# 目标framework路径(构建产物中的foo.framework)
TARGET_FRAMEWORK="${BUILT_PRODUCTS_DIR}/${FRAMEWORK_NAME}.framework"
# 原始完整opencv2.framework的路径(根据你的项目实际位置修改)
SOURCE_FRAMEWORK="${PROJECT_DIR}/Frameworks/${EMBEDDED_FRAMEWORK}.framework"
# foo.framework内部的目标路径
DEST_PATH="${TARGET_FRAMEWORK}/${EMBEDDED_FRAMEWORK}.framework"

# 删除打包时自动嵌入的不完整opencv2.framework
if [ -d "${DEST_PATH}" ]; then
    rm -rf "${DEST_PATH}"
fi

# 复制完整版本到目标位置
cp -R "${SOURCE_FRAMEWORK}" "${DEST_PATH}"

提示:如果用CocoaPods管理opencv2,SOURCE_FRAMEWORK可改为${PODS_ROOT}/opencv2/opencv2.framework,具体路径以Pods实际安装位置为准。

步骤4:验证效果

  • 执行清理(Cmd+Shift+K)后重新构建项目(Cmd+B)
  • 打开构建产物中的foo.framework,检查内部是否包含完整的opencv2.framework(含module文件夹)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:53:14