Importing iOS Frameworks - tanersener/ffmpeg-kit GitHub Wiki

The recommended method to install ffmpeg-kit in an iOS project is to use Cocoapods. Adding ffmpeg-kit dependency to the project's Podfile and running pod install is enough to complete the installation. Cocoapods will download necessary libraries and update the project files for you.

If Cocoapods is not available, or you don't want to use Cocoapods in your project, you can install iOS frameworks using instructions below.


1. Download an iOS framework package from Releases page.

  • Note that Main releases publish xcframework packages and LTS releases publish framework packages

  • iOS framework releases are files that include -ios- in their name, e.g., ffmpeg-kit-min-4.4-ios-xcframework.zip


2. Extract the zip package to a temporary location and copy all frameworks (directories with .xcframework or .framework extension) into your project folder.


3. Open your project in Xcode and drag & drop all frameworks from Finder's project folder into your project window inside Xcode.

  • Make sure that Framework Search Path for PROJECT_DIR is set to recursive in Xcode

  • For v4.5.1 and newer releases

    • Go to Build Phases -> Embed Frameworks and make sure that all ffmpeg-kit frameworks are listed there. Set destination to Frameworks, uncheck Copy only when installing and check Code Sign On Copy for all frameworks

    • Go to Build Phases and add a Run Script in the end

      • Use this as shell source for iOS targets
      ${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/ffmpegkit.framework/strip-frameworks.sh
      
      • Use this as shell source for Mac Catalyst targets
      ${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/ffmpegkit.framework/Resources/strip-frameworks.sh
      
  • For v4.5 and older releases

    • Validate that ffmpeg-kit frameworks listed under General -> Frameworks, Libraries and Embedded Content are not marked as Embed & Sign. The correct setting for them is Do Not Embed


4. Add libbz2, libc++, libiconv, libz, CoreMotion1, VideoToolbox and Accelerate2 system libraries/frameworks to Build Phases -> Link Binary With Libraries section.

1 - Required by full and full-gpl packages

2 - Required when rubberband is enabled

⚠️ **GitHub.com Fallback** ⚠️