Lo he usado use_frameworks
en CocoaPods Podfile
muchas veces. Me pregunto por qué lo usamos. No pude obtener la respuesta directa.
Ejemplo:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
Lo he usado use_frameworks
en CocoaPods Podfile
muchas veces. Me pregunto por qué lo usamos. No pude obtener la respuesta directa.
Ejemplo:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
Respuestas:
use_frameworks
le dice a CocoaPods que desea utilizar Frameworks en lugar de Bibliotecas estáticas. Dado que Swift no es compatible con las bibliotecas estáticas, debe utilizar marcos.
En otra respuesta, expliqué las diferencias entre las bibliotecas estáticas y los marcos:
Estructuras Cocoa Touch
Siempre son de código abierto y se crearán como su aplicación. (Por lo tanto, Xcode a veces lo compilará, cuando ejecute su aplicación y siempre después de limpiar el proyecto). Los marcos solo son compatibles con iOS 8 y versiones posteriores, pero puede usar Swift y Objective-C en el marco.
Bibliotecas estáticas Cocoa Touch
Como dice el nombre, son estáticos. Entonces, ya están compilados cuando los importa a su proyecto. Puede compartirlos con otras personas sin mostrarles su código. Tenga en cuenta que las bibliotecas estáticas actualmente no son compatibles con Swift. Tendrá que usar Objective-C dentro de la biblioteca. La aplicación en sí todavía se puede escribir en Swift.
Fuentes: Mi otra respuesta | Blog de AddThis.com
use_frameworks!
le dice a las mazorcas de cacao que usen bibliotecas dinámicas, y fue muy frecuente en un momento debido, en particular, a que Swift no admite bibliotecas estáticas, lo que significa que no había otra opción, sin embargo, a menudo ya no las necesita use_frameworks!
.
A partir de Xcode 9 beta 4 y CocoaPods 1.5.0, ahora se admiten bibliotecas estáticas rápidas. La principal ventaja son los tiempos de inicio de la aplicación más rápidos, especialmente si tiene muchos pods: iOS 10 y 11 no son los más rápidos cuando tiene muchos dylibs.
CocoaPods 1.5.0 fue lanzado a principios de abril 2018 , por lo que puede que tenga que actualizar conseguirlo: sudo gem install cocoapods
.
Sin embargo, encontré varios pods que aún no funcionan correctamente con bibliotecas estáticas, por lo que su kilometraje puede variar.
No such module
errores. ¿Es eso un problema en esos cocoapods?
use_modular_headers!
a mi Podfile para que funcione con pods que presumiblemente lo requieren pero que aún no lo habilitan por sí mismos.
use_frameworks
declara que desea utilizar marcos dinámicos , en lugar de bibliotecas estáticas .
Con Xcode 9.0 y CocoaPods 1.5.0 lanzados, puede usar bibliotecas estáticas con rapidez si no las usa use_frameworks
.
Un problema con use_frameworks
es que todo su marco en Pods / Productos son marcos.
Aquí hay un artículo relacionado: Descripción básica de marcos estáticos y dinámicos en ios
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
Una actuación qué?
[Acerca de] de Cocoapod use_frameworks!
es responsable del tipo de binario:
use_frameworks!
está presente -dynamic framework
use_frameworks!
está presente -static library
use_frameworks!
tiene un reflejo en Mach-O Type
[Acerca de] en un objetivo correspondiente del Pods
proyecto.
Línea de tiempo:
use_frameworks!
que tenías que usar para Swift Pod