-
-
Notifications
You must be signed in to change notification settings - Fork 29
CocoaPods
LeoTM edited this page Apr 29, 2022
·
7 revisions
- 2012: https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/OverviewOfDynamicLibraries.html
- 2013: https://github.com/CocoaPods/CocoaPods/issues/9099 (RFC)
- 2014: https://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks
- 2015: https://blog.cocoapods.org/CocoaPods-0.36 (Framework and Swift Support)
- 2016: https://blog.cocoapods.org/CocoaPods-1.0 (Frameworks support for CocoaPods)
- 2018: https://blog.cocoapods.org/CocoaPods-1.4.0 (Static framework support and a new Swift version DSL)
- 2018: https://blog.cocoapods.org/CocoaPods-1.5.0 (Swift Static Libraries)
- no longer restricted into specifying
use_frameworks!
in their Podfile in order to install pods that use Swift. Interop with Objective-C should just work. However, if your Swift pod depends on an Objective-C, pod you will need to enable "modular headers" (see below) for that Objective-C pod
- no longer restricted into specifying
- 2020: https://medium.com/@joncardasis/swift-dynamic-frameworks-react-native-3d77c4972f32
- https://firebase.google.com/docs/ios/link-firebase-static-dynamic
- 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)
- 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)
- 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