ios - google - cocoapods swift 4
Ahora puede usar la versión de cocoapods 0.36.0 ejecutando sudo gem install cocoapods
que admite la integración de frameworks rápidos. Cuando utiliza un marco escrito por swift, debe usarlo explícitamente en Podfile:
platform :ios, ''8.0''
use_frameworks!
pod ''Alamofire''
En mi caso, descubrí que no estaba agregando pods al objetivo principal, sino que solo probaba y probaba los objetivos de UserUI en Podfile, como se explica here .
Parece que el proceso es similar al descrito en la sección Mix and Match de Using Swift with Cocoa and Objective-C documentation.
- Crea tu Podfile y ejecuta la
pod install
. - Cree un nuevo archivo de encabezado Objective-C,
Example-Bridging-Header.h
, y agréguelo al proyecto. - Agregue una declaración de importación al encabezado del puente .
- Establezca el
Objective-C Bridging Header
para su objetivo:
Ahora puede usar su biblioteca, en ese caso, MKUnits, en su archivo Swift:
let kilograms = NSNumber.mass_kilogram(2)()
let pounds = NSNumber.mass_pound(10)()
let result = kilograms.add(pounds)
println(result)
Si obtiene un error de archivo no encontrado en su bridging-header.h, le recomendamos que se asegure de que su biblioteca de Pods esté vinculada en su Build Scheme.
La sección de solución de problemas de CocoaPod describe cómo hacerlo en el elemento n.º 4 here
ACTUALIZACIÓN : Se ha lanzado la versión estable de CocoaPods 0.36. Es oficialmente compatible con Swift.
CocoaPods ahora es compatible con Swift en su última versión 0.36. Todavía está en beta, pero funciona.
Primero necesita instalar la versión beta de CocoaPods (actualmente beta 2) ejecutando esto en su Terminal.
sudo gem install cocoapods --pre
Eso es practicamente todo. Puede agregar bibliotecas Swift como lo haría normalmente.
Pero hay una trampa si desea agregar una biblioteca escrita en Objective-C a un proyecto de Swift a través de CocoaPods. ¡Necesitas agregar la línea use_frameworks!
a tu Podfile Aquí hay un ejemplo.
use_frameworks!
platform :ios, ''8.0''
pod ''MagicalRecord''
Escribí una publicación en el blog sobre esto también.
Cocoapods 0.36 y superior presenta el use_frameworks!
instrucción que implica que el encabezado de puente no es necesario para importar conjuntos de Objective-C en Swift.
A continuación encontrará un ejemplo completo con MBProgressHUD y Alamofire :
1. Podfile
source ''https://github.com/CocoaPods/Specs.git''
platform :ios, ''8.3''
use_frameworks!
pod ''Alamofire'', ''>= 1.2.2'' # Swift pod
pod ''MBProgressHUD'', ''>= 0.9.1'' # Objective-C pod
2. Eliminación
Elimine los importes de su encabezado de puente o incluso elimine el archivo de encabezado de puente si no lo necesita. Si elige la última posibilidad, no olvide eliminar la ruta (a este archivo de encabezado de puente eliminado) en su configuración de proyecto de Xcode.
3. Agregando importaciones
Agregue import MBProgressHUD
y / o import Alamofire
en la parte superior de cada archivo Swift que necesite estas clases.
4. Arregle las enumeraciones si es necesario
¡Ahora está usando marcos de trabajo de buena fe, por lo que sus enumeraciones se han movido en vuelo! Es posible que tenga una línea de Swift que estaba bien con el encabezado de puente como este:
progressHUD.mode = MBProgressHUDModeIndeterminate
Eso ahora tiene que convertirse en esto:
progressHUD.mode = MBProgressHUDMode.Indeterminate
No es un gran problema, pero la gran cantidad de errores te puede llevar a descarriar que tienes un problema mayor que el que tienes si usas muchos enunciados de Objective-C.
Para su información: supongo (tendrá que probar usted mismo para estar seguro) que use_frameworks! las instrucciones en su Podfile solo son compatibles con los proyectos de Xcode dirigidos a iOS> = 8.