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

含CocoaPods依赖的Umbrella Framework构建及导入问题求助

解决Umbrella Framework构建及导入问题的实操方案

1. 解决运行脚本时的磁盘I/O错误

  • 排查脚本路径:确保脚本中涉及的项目路径、输出路径无空格或特殊字符,比如将项目迁移到~/Desktop/ObjKnowFace_Proj这类简洁路径
  • 修复文件夹权限:右键项目根文件夹,选择「显示简介」,确认当前用户拥有读写权限;也可通过终端执行chmod -R 755 /你的项目完整路径批量修改权限
  • 清理Xcode缓存:按下Cmd+Shift+K清理项目,手动删除~/Library/Developer/Xcode/DerivedData下对应项目的缓存文件夹

2. 解决no such module 'Lottie'错误

  • 核对Podfile配置:确保GoogleMLKit/FaceDetection和lottie-ios都在Umbrella Framework的target块内,示例:
    target 'ObjKnowFace' do
      use_frameworks!
      pod 'GoogleMLKit/FaceDetection'
      pod 'lottie-ios'
    end
    
    执行pod install后重新打开.xcworkspace文件
  • 配置Umbrella Header:在ObjKnowFace.h中添加#import <Lottie/Lottie.h>;如果框架包含Swift代码,需在桥接文件中导入该头文件
  • 检查搜索路径:在框架项目的Build Settings中,找到Framework Search Paths,添加$(PROJECT_DIR)/Pods/Lottie并设置为recursive

3. 解决导入其他项目时的模块构建失败问题

  • 生成Fat Framework:确保导出的框架同时包含真机和模拟器架构,终端执行命令合并:
    lipo -create ./build/Release-iphoneos/ObjKnowFace.framework/ObjKnowFace ./build/Release-iphonesimulator/ObjKnowFace.framework/ObjKnowFace -output ./ObjKnowFace.framework/ObjKnowFace
    
  • 正确导入目标项目:将框架拖入目标项目时勾选「Copy items if needed」,并在Build Phases -> Link Binary With Libraries中添加ObjKnowFace.framework
  • 调整目标项目Build Settings:
    • Framework Search Paths添加框架所在路径,设置为recursive
    • 将Enable Modules (C and Objective-C)设为YES
    • 临时开启Allow Non-modular Includes in Framework Modules为YES(若框架头文件存在非模块化导入时使用)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:15:32