Skip to content

CocoaPods

LeoTM edited this page Apr 29, 2022 · 7 revisions

History

[Old default, iOS 0-10.12] (Cocoa Touch) Static Libraries (.framework)

  • Swift supports static linking
use_frameworks!
# use_frameworks!(false)
# # Since CocoaPods 1.9 and Firebase 7, expanded use_frameworks! DSL
# use_frameworks! :linkage => :static
# use_frameworks!(:linkage => :static)

[Newer, CocoaPods 0.36+, iOS 8+] (Cocoa Touch) Dynamic Frameworks

  • all Pods be compiled as dynamically-linked frameworks
  • Swift initially required dynamic linking to be used in iOS apps
  • Flipper will not work, disable in Podfile
  • same as Static Library data, holds these and more
    • Hosted Dynamic Frameworks and Libraries
    • Clang Module Map and Swift Modules
    • Info.plist
use_frameworks! # DSL
# use_frameworks!(true)
# use_frameworks! :linkage => :dynamic
# use_frameworks!(:linkage => :dynamic)

Xcode 11 - XCFramework

  • allows multiple copies of a framework compiled for different architectures and platforms to be combined
  • required for binary dependencies to support the new Catalyst platform introduced in macOS Catalina
  • support for Pod authors to ship vendored XCFrameworks using the existing vendored_framework DSL