Vainas de cocoa y Extracción Watchkit

Intento crear una extensión WatchKit para mi aplicación …

Actualicé el file de pods para que se vea así:

platform:ios, '8.0' use_frameworks! source 'https://github.com/CocoaPods/Specs.git' link_with 'my-team-ios', 'My Team WatchKit Extension' def shanetworking_pods pod 'DOSingleton' pod 'JSONModel' pod 'MagicalRecord' end target :'My App' do shanetworking_pods pod 'Facebook-iOS-SDK', '~> 3.23.1' pod 'Reveal-iOS-SDK', :configurations => ['Debug'] ... some more pods here... end target :'My Team WatchKit Extension' do shanetworking_pods end 

Cómo instalo los pods y no recibo un error …

Pero, cuando compongo la aplicación, obtengo este error:

 ld: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation) 

¿Cuál es mi problema aquí?

Debe abrir el file xcworkspace en lugar del file de proyecto cuando usa CocoaPods.

El problema es cuando se actualiza a cocoapods 0.36.x ahora están creando Frameworks de cada biblioteca de pods. Ver la publicación del blog al respecto.

Esto provoca problemas con cualquier biblioteca de pod que depende de otros pods y cómo se hace reference a ellos en sus instrucciones de import, o cómo el código los importa también. El process de Pod ahora los convierte en frameworks y cuando solían ser importados como

#import "ThisOtherPodClass.h"

Ahora necesita ser importado como

#import <ThisPodsFrameworkName/ThisOtherPodClass.h>

Hay una nueva versión de pods de cocoa .38, que está diseñada para soportar WatchKit. Sin embargo, si desea trabajar con la versión actual, compruebe o asegúrese de que libPods.a se agregue al objective, la extensión WatchKit en bibliotecas y frameworks incluidos. En segundo lugar, asegúrese de que Podsdebug y Pods.release se agreguen a Watchkit Extension en el Tablero general

https://github.com/CocoaPods/CocoaPods/issues/3382

neonichu comentó el 15 de abril de 2015 comenzaría por asegurarse de que OTHER_LDFLAGS no se sobrescriba con cosas innecesarias, tanto en el proyecto como en los objectives.

Ese set OTHER_LDFLAGS en configuraciones de buids resolvió mi issus.

Trate de cambiar estas líneas

target :'My App' , target :'My Team WatchKit Extension'

y eliminar dos puntos:

target 'My App' , target 'My Team WatchKit Extension'

Encontré una "solución temporal" para mí: volver a CocoaPods 0.35

Ahora todo está funcionando bien, con nuestros cambios a mi file de proyecto / pod (¡excepto eliminar el 'use_frameworks!')

Creo que esa no debería ser la solución final aquí …

Una testing corta actualizando nuevamente a 0.36 plantea el mismo problema que antes …

Aquí hay un enlace al problema de GitHub:

Cambie el nombre del objective para que no incluya ningún espacio -> MyTeamWatchKitExtension tanto en podfile como en General -> Destinos. Esto resolvió mi problema

Estoy usando Pod 1.2.1 y enfrentando el mismo problema, es decir, no hay dicho module XYZ y para cualquiera que se haya encontrado con el mismo problema aquí, lo que hice para superarlo:

 use_frameworks! def shanetworking_pods pod 'XYZ' end target 'MyApp' do platform :ios, '8.0' shanetworking_pods pod 'Blah' pod 'blah' end target 'Watch Extension' do platform :watchos, '3.2' shanetworking_pods end 

Acabo de agregar la plataforma bajo cada objective, por ejemplo, la platform :watchos, '3.2' que faltaba antes y resolvió mi problema.