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

iOS集成ffmpeg:需为每个.dylib单独创建framework吗?

FFmpeg动态库适配iOS App Store的打包方案

针对你遇到的App Store拒绝直接嵌入.dylib的问题,核心解决方案是将所有FFmpeg的.dylib打包到同一个Framework中,无需为每个.dylib单独创建Framework,具体说明如下:

  • 苹果的规则本质是禁止独立的.dylib直接嵌入App包,但允许将动态库封装在官方认可的Framework容器内。Framework是苹果原生支持的库分发格式,只要符合签名和打包规范,就能通过App Store审核。

  • 打包步骤参考:

    1. 编译FFmpeg生成所需的所有.dylib模块(如libavcodec.dylib、libavformat.dylib等)
    2. 创建一个Cocoa Framework项目,将所有FFmpeg的.dylib添加到Framework的Frameworks子目录,同时导入FFmpeg的头文件到Framework的Headers目录
    3. 在Xcode Build Settings中,设置Framework的Mach-O Type为Dynamic Library,并将内部的FFmpeg.dylib设置为Embed & Sign
    4. 使用install_name_tool修改每个.dylib的安装路径为相对路径(例如@rpath/FFmpegKit.framework/Versions/A/Frameworks/libavcodec.dylib),确保模块间依赖能正确加载
  • 验证注意事项:

    • 检查Framework结构,确保所有.dylib都在Framework内部,而非直接放在App包根目录
    • 用otool -L [dylib路径]命令验证依赖路径是否为相对路径,避免绝对路径导致的加载失败
    • 在真机上测试FFmpeg功能正常后,再提交App Store审核

内容的提问来源于stack exchange,提问作者Tamás Szelei

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:01:08