Uso de la dependencia en el module rápido (marco)

Estoy tratando de crear un module rápido (Cocoa Touch Framework) con código reutilizable dentro del entorno creado por los pods de cocoa que incluye bibliotecas de terceros escritas en Objective-C (aquí, Restkit). Desafortunadamente, no puedo usar Restkit en el module que creo.

Esto es lo que hice para crear el module:

  1. Archivo -> Nuevo objective: Cocoa Touch Framework, Idioma: Swift, Proyecto: MyProject, Embed in Application: MyProject

  2. En la pestaña "Información" de la configuration del proyecto en la sección "Configuraciones", defino el file Podsdebug y Pods.release xcconfig para mi objective recién creado.

  3. En el file de encabezado, que Xcode creó automáticamente para mí, networkModule.h, agrego la siguiente línea:

    #import <RestKit / RestKit.h>

Resultado: Al tratar de comstackr, obtengo el error "include cabecera no modular dentro del module de estructura 'networkModule'"

He configurado el indicador para "Permitir los modules no modulares incluidos en los modules de estructura" a SÍ en la configuration de compilation para el objective del proyecto y el objective del module / marco.

Fui al proyecto Cocoa pod y he intentado establecer la visibilidad del file Header de RestKit.h en "Public" en la membresía de destino (que por supuesto no es una buena solución para meterse con el entorno de pods de cocoa)

No puedo comstackr. Sigo teniendo el mismo error.

¿Es posible, en primer lugar, crear un Marco de Cocoa Touch con dependencies para un marco gestionado de poda de cocoa?

Por cierto Mi primera idea de crear una vaina de cocoa privada no funcionó tan bien, ya que no parece ser compatible, aunque estoy usando el preludio de las cápsulas de cocoa 0.36 con soporte para swift.

Deberías poder hacer tu Pod privado ganado. Solo necesitas crear un podspec para ello. Aquí hay un ejemplo de uno.

Pod::Spec.new do |s| s.name = "Commons" s.version = "1.0.0" s.summary = "Common code for my iOS projects." s.license = {:type => 'Commercial', :text => "Copyright (c) Dan Leonard(Or Your Name?). All rights reserved." } s.source = { :git => "https://github.com/PATHTOPOD", :tag => s.version.to_s } s.homepage = "https://github.com/PATHTOPOD" s.requires_arc = true s.ios.deployment_target = '9.0' s.subspec 'Core' do |ss| ss.source_files = '*.swift' end s.subspec 'Menu' do |ss| ss.source_files = 'Menu/*.swift' ss.resources = ['Menu/*.storyboard', 'Menu/*.xcassets'] ss.dependency 'Alamofire' end end 

Luego, dentro de su proyecto, solo tiene que hacer pod init abrir su podfile que acaba de crear y agregar esto

 source 'https://github.com/CocoaPods/Specs.git' xcodeproj 'YOURPROJECT.xcodeproj' platform :ios, '9.0' use_frameworks! pod 'Commons', git: 'https://github.com/PATHTOPODPROJECT' #pod 'Commons', :path => '/Users/YourUser/Path/To/Project/commons' pod 'KeychainSwift' pod 'SQLite.swift', git: 'https://github.com/stephencelis/SQLite.swift.git' 

Ahora en este ejemplo, Podfile Commons se declara dos veces, el segundo se comenta. Si lo descomenta y comenta el primero, haga la pod install en la carpeta de proyectos desde la terminal. Esto hará que un DevelopmentPod sea un pod que sea local. De esta forma, puedes hacer cambios a la cápsula localmente dentro de Xcode. No hay conmutación ni installation de pods cada vez que realiza un cambio.

Importarás la vaina como cualquier otra poniendo

import Commons no es #import <Commons/Commons.h> Así es como lo haces en Objective C not Swift

Una vez que tenga una versión funcional, confírmelo a git hub y apunte su proyecto a la versión github.

Espero que esto ayude.