Símbolos no definidos para la architecture armv7: "_SCNetworkReachabilityCreateWithAddress"

Esto se ha convertido en un dolor correcto. Lo he estado mirando durante 2 días y no puedo resolverlo. Aquí está el error que estoy recibiendo.

Undefined symbols for architecture armv7: "_SCNetworkReachabilityCreateWithAddress", referenced from: +[Reachability reachabilityWithAddress:] in Reachability.o "_SCNetworkReachabilityCreateWithName", referenced from: +[Reachability reachabilityWithHostName:] in Reachability.o "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: -[Reachability stopNotifier] in Reachability.o "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: -[Reachability startNotifier] in Reachability.o "_SCNetworkReachabilitySetCallback", referenced from: -[Reachability startNotifier] in Reachability.o "_SCNetworkReachabilityGetFlags", referenced from: -[Reachability connectionRequinetworking] in Reachability.o -[Reachability currentReachabilityStatus] in Reachability.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

He agregado SystemConfiguration.framework y no parece querer hacer nada con él, ya que este error no desaparecerá. He visto algunos de los mismos problemas, pero muchos de ellos confirman las respuestas. Este tipo de acaba de desarrollarse durante el fin de semana cuando nadie lo había tocado. Alguien puede ayudar.

EDIT Olvidé agregar este bit.

ld: advertencia: ignorar file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/SystemConfiguration, falta la architecture requerida armv7 en file

EDITAR

Gracias a @gaige he encontrado un problema; hay una barra adicional justo antes de SystemConfiguration.framework que no debería estar allí. He eliminado el marco y he vuelto a agregarlo y eso no me ha ayudado. ¿Cómo puedo eliminar esta barra adicional?

Normalmente , las barras adicionales no dañarán un process de compilation tipo UNIX.

Pero, es necesario asegurarse de que la architecture armv7 esté dentro del file de estructura que su compilation está intentando usar. Para hacer esto, use el command lipo -info en la línea de command:

 lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer‌​/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/Sy‌​stemConfiguration 

Debería ver salida como esta:

 Architectures in the fat file: SystemConfiguration are: armv6 armv7 

Si no lo hace, probablemente su proyecto esté configurado para vincularse con la versión incorrecta de SystemConfiguration.framework. Hay varias versiones de ese marco en su máquina. Por lo tanto, verificaría la ruta del marco (es decir, SystemConfiguration) que tiene en su proyecto.

Normalmente, espero que el file sea algo como esto (ajustado para la versión del sistema operativo que está utilizando):

 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Lib‌​rary/Frameworks/SystemConfiguration.framework 

He tenido este problema durante aproximadamente 8 horas con un proyecto Cordova y el complemento org.apache.cordova.network-information . Por las respuestas anteriores y varias otras respuestas, me animaron a search en la sección Project > Target > Build Phases > Link Binary with Libraries de Xcode, que era correcto.

Pero aunque SCNetworkReachabilityCreateWithAddress se define en SystemConfigration.framework , no pude eliminar los errores del linker añadiendo y eliminando sistemáticamente esta y otras bibliotecas.

Finalmente, creé un nuevo proyecto con el complemento y copié la constelación del marco exactamente como era el original. Ahora está funcionando.

Conclusión:

  • Si es posible, cree un nuevo proyecto con las extensiones necesarias y copie las constelaciones. Podría ayudar.
  • A veces, una biblioteca está demasiado incluida, así que desactívela. A veces es al revés.
  • Para profundizar, revise la SystemConfiguration.framework como se describe en las respuestas pendientes arriba. Puede no coincidir con la architecture de destino. Además, compruebe los caracteres extraños en la construcción, incluidos los paths.